UNPKG

nralcm

Version:

This is a framework based on NodeJs to manage rest api request lifecycle

66 lines (65 loc) 2.45 kB
"use strict"; 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"); }); });