nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
69 lines (68 loc) • 2.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("mocha");
const chai_1 = require("chai");
const sinon = require("sinon");
const __1 = require("..");
const common_1 = require("../../common");
describe("HandlerDispatcher", () => {
describe("processHandler", () => {
it("should process registered handler and should set status code", () => {
let request = {
url: "/api/product",
method: common_1.HttpMethod.GET
};
let response = {};
let handler = {
processRequest: sinon.stub()
};
handler.processRequest.callsFake((req) => {
req.statusCode = 201;
});
let httpConfiguration = {
getHandler: sinon.stub()
};
httpConfiguration.getHandler.callsFake(() => {
return ["/api/*", handler];
});
__1.HandlerDispatcher.processHandler(request, response, httpConfiguration);
chai_1.expect(request.statusCode).to.equal(201);
});
it("should process registered handler and should return BadRequest", () => {
let request = {
url: "/product",
method: common_1.HttpMethod.GET
};
let response = {
type: sinon.stub(),
status: sinon.stub(),
json: sinon.stub()
};
response.type.callsFake(() => {
return response;
});
response.status.callsFake((status) => {
response.statusCode = status;
return response;
});
response.json.callsFake(() => {
return response;
});
let handler = {
processRequest: sinon.stub()
};
handler.processRequest.callsFake((req) => {
req.statusCode = 201;
});
let httpConfiguration = {
getHandler: sinon.stub()
};
httpConfiguration.getHandler.callsFake(() => {
return undefined;
});
let httpContext = new __1.HttpContext(request, response);
__1.HandlerDispatcher.processHandler(request, response, httpConfiguration, httpContext);
chai_1.expect(response.statusCode).to.equal(400);
});
});
});