wip-webhook-helper
Version:
This utility helps with webhook notifications from Kentico Kontent
42 lines (36 loc) • 1.37 kB
text/typescript
import { signatureHelper } from '../..';
import { expect } from 'chai';
const secret: string = '4INSnqn9ZA9pOWHpRySS+rsEqL6qHF3CIAftipJeuDc=';
const signature: string = 'eOgrznqBtHRbFzp1NZsirKAqe7d8SiPf2Dns+Ib6Aso=';
const payload: string = `{
"data": {
"items": [
{
"id": "f0e9e9fa-91e8-40d5-9527-b7e0ae51fc54",
"codename": "christian_bale",
"language": "en",
"type": "actor"
}
],
"taxonomies": []
},
"message": {
"id": "790b5fea-febe-4421-b8e7-d333afc60136",
"project_id": "b259760f-81c5-013a-05e7-69efb4b954e5",
"type": "content_item_variant",
"operation": "publish",
"api_name": "delivery_production",
"created_timestamp": "2020-03-13T08:05:07.4044893Z",
"webhook_url": "https://enxkdw8lvglue.x.pipedream.net/"
}
}`;
const generatedHesh = signatureHelper.getHashFromString(signatureHelper.replaceLinebreaks(payload), secret);
const isValid = signatureHelper.isValidSignatureFromString(signatureHelper.replaceLinebreaks(payload), secret, signature);
describe('# Signatures', () => {
it('Signature should be valid', () => {
expect(isValid).to.equal(true);
});
it('Generated hash should match signature', () => {
expect(generatedHesh).to.equal('eOgrznqBtHRbFzp1NZsirKAqe7d8SiPf2Dns+Ib6Aso=');
});
});