///
///
import {WebhookRequest} from "../../lib/core/webhook-request";
import {BufferUtil} from "../../lib/core/buffer-util";
import * as assert from "assert";
import * as fs from "fs";
describe("WebhookRequest", function() {
describe("SimplePost", function() {
it("All Data At Once", function(done) {
let request = new WebhookRequest();
// Had to run this command to get proper carriage returns in my file:
// sed -e 's/$/\r/' WebhookRequest.raw > WebhookRequest.raw
let buffer: Buffer = fs.readFileSync("test/core/WebhookRequestProper.raw");
request.append(buffer);
assert.ok(request.body.indexOf("version") !== -1);
assert.equal(request.headers["Content-Length"], 603);
assert.equal(request.body.length, 603);
assert.equal(request.rawContents.length, 1481);
done();
});
});
describe("TwoPartPost", function() {
it("Data Split In Two", function(done) {
let request = new WebhookRequest();
// Had to run this command to get proper carriage returns in my file:
// sed -e 's/$/\r/' WebhookRequest.raw > WebhookRequest.raw
let buffer: Buffer = fs.readFileSync("test/core/WebhookRequestProper.raw");
let bufferString: string = buffer.toString();
console.log("BUFFER: " + BufferUtil.prettyPrint(buffer));
// Split the buffer into two pieces
let buffer1 = bufferString.substr(0, bufferString.indexOf("38Z"));
let buffer2 = bufferString.substr(bufferString.indexOf("38Z"));
request.append(Buffer.from(buffer1));
request.append(Buffer.from(buffer2));
assert.ok(request.body.indexOf("version") !== -1);
assert.equal(request.headers["Content-Length"], 603);
assert.equal(request.body.length, 603);
assert.equal(request.rawContents.length, 1481);
assert.equal(request.done(), true);
done();
});
});
describe("#nodeID", function () {
it("Returns null when not specified", function(done) {
let buffer: Buffer = fs.readFileSync("test/core/WebhookRequestProper.raw");
let bufferString: string = buffer.toString();
bufferString = bufferString.replace("node-id", "dummy");
let request = new WebhookRequest();
request.append(Buffer.from(bufferString));
assert.equal(request.nodeID(), null);
done();
});
it("Returns value when specified", function(done) {
let buffer: Buffer = fs.readFileSync("test/core/WebhookRequestProper.raw");
let request = new WebhookRequest();
request.append(buffer);
assert.equal(request.nodeID(), "JPK");
done();
});
});
});