nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
64 lines (63 loc) • 2.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("mocha");
const chai_1 = require("chai");
const sinon = require("sinon");
const __1 = require("..");
const product_controller_1 = require("../../controllers/product.controller");
const exceptions_1 = require("../../exceptions");
describe("ControllerMapper", () => {
it("should map with specified route and must return route", () => {
let request = {
url: "api/product"
};
let response = {};
let httpContext = new __1.HttpContext(request, response);
let routes = [
{ path: "product", controller: product_controller_1.ProductController }
];
let restApiConfiguration = {
routes: routes
};
let route = __1.ControllerMapper(httpContext, restApiConfiguration);
chai_1.expect(route.path).to.equal("product");
});
it("should throw NotFoundException", () => {
let request = {
url: "api/product1"
};
let response = {
type: sinon.stub(),
status: sinon.stub(),
send: sinon.stub()
};
response.type.callsFake(() => {
return response;
});
response.status.callsFake((status) => {
response.statusCode = status;
return response;
});
response.send.callsFake(() => {
return response;
});
let httpContext = new __1.HttpContext(request, response);
let routes = [
{ path: "product", controller: product_controller_1.ProductController }
];
let httpResponseHandler = {
sendResponse: sinon.stub()
};
let restApiConfiguration = {
routes: routes,
HttpResponseHandler: httpResponseHandler
};
try {
let route = __1.ControllerMapper(httpContext, restApiConfiguration);
chai_1.expect(route.path).to.equal("product");
}
catch (e) {
chai_1.expect(e).to.instanceof(exceptions_1.NotFoundException);
}
});
});