nralcm
Version:
This is a framework based on NodeJs to manage rest api request lifecycle
66 lines (65 loc) • 2.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
require("mocha");
const chai_1 = require("chai");
const sinon = require("sinon");
const api_method_mapper_1 = require("./api-method-mapper");
const __1 = require("..");
const product_controller_1 = require("../../controllers/product.controller");
const common_1 = require("../../common");
const exceptions_1 = require("../../exceptions");
describe("ApiMethodMapper", () => {
it("should return RouteDescriptor of get method", () => {
let request = {
url: "/api/product",
method: common_1.HttpMethod.GET
};
let response = {};
let httpContext = new __1.HttpContext(request, response);
httpContext.controller = product_controller_1.ProductController;
let controller = product_controller_1.ProductController;
httpContext.controllerObject = new controller();
let restApiConfig = {};
const routeDescriptor = api_method_mapper_1.ApiMethodMapper(httpContext, restApiConfig);
chai_1.expect(routeDescriptor.methodName).to.equal("get");
});
it("should throw NotFoundException", () => {
let request = {
url: "/api/product/getProductDetails/10",
method: common_1.HttpMethod.GET
};
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);
httpContext.controller = product_controller_1.ProductController;
let controller = product_controller_1.ProductController;
httpContext.controllerObject = new controller();
let httpResponseHandler = {
sendResponse: sinon.stub()
};
let restApiConfig = {
HttpResponseHandler: httpResponseHandler
};
try {
api_method_mapper_1.ApiMethodMapper(httpContext, restApiConfig);
}
catch (e) {
chai_1.expect(e).to.instanceof(exceptions_1.NotFoundException);
return;
}
throw new Error("Not passed test");
});
});