@codification/cutwater-aws
Version:
A library providing general functionality for TypeScript based AWS projects.
57 lines • 2.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const CloudFront_mock_1 = require("./CloudFront.mock");
const LambdaEdgeUtils_1 = require("./LambdaEdgeUtils");
const createCFRequest = () => (0, CloudFront_mock_1.mockCloudFrontRequestEvent)({
Records: [
{
cf: {
config: {
eventType: 'origin-request',
},
request: {
origin: {
custom: {
customHeaders: {
'my-origin-custom-header': [
{
key: 'My-Origin-Custom-Header',
value: 'Test',
},
],
},
},
},
},
},
},
],
});
const createHeaders = (...headerNames) => {
const rval = {};
let counter = 0;
headerNames.forEach((header) => {
rval[header.toLowerCase()] = `Value${counter}`;
counter++;
});
return rval;
};
describe('LambdaEdgeUtils Unit Tests', () => {
test('isCustomOriginRequestEvent', () => {
const req = createCFRequest();
expect(LambdaEdgeUtils_1.LambdaEdgeUtils.isCustomOriginRequestEvent(req)).toBeTruthy();
req.Records[0].cf.config.eventType = 'origin-response';
expect(LambdaEdgeUtils_1.LambdaEdgeUtils.isCustomOriginRequestEvent(req)).toBeFalsy();
});
const headers = LambdaEdgeUtils_1.LambdaEdgeUtils.toCloudFrontHeaders(createHeaders('Connection', 'Content-Length', 'X-Custom-Header'));
test('toCloudFrontHeaders', () => {
expect(headers.connection[0].value).toBe('Value0');
});
test('stripOriginRequestHeaders', () => {
expect(Object.keys(LambdaEdgeUtils_1.LambdaEdgeUtils.stripOriginRequestHeaders(headers)).length).toBe(1);
});
test('toIncomingHttpHeaders', () => {
expect(LambdaEdgeUtils_1.LambdaEdgeUtils.toIncomingHttpHeaders(headers)['x-custom-header']).toBe('Value2');
});
});
//# sourceMappingURL=LambdaEdgeUtils.test.js.map