UNPKG

tedi

Version:

Express wrappper written in typescript with dependency injection capabilities

78 lines (77 loc) 3.26 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); const request = require("supertest-as-promised"); const core = require("../../core"); const decorators_1 = require("../../decorators"); const express_1 = require("../../express"); describe("ExpressServer params", () => { let server; beforeEach(() => { server = new express_1.ExpressServer(); }); describe("given a route tree with parameters", () => { let TestController = class TestController { get() { return; } }; TestController = __decorate([ decorators_1.Injectable() ], TestController); beforeEach(() => { server .setJsonRoutes({ "/api": { "/user/:user_id": { "get": ["TestController", "get"], "/address/:address_id": { "get": ["TestController", "get"], }, }, }, }) .dependencies(core.dependency("TestController", { class: TestController })); }); describe("when I call a route with params", () => { let params; beforeEach(() => { spyOn(server.getDependency("TestController"), "get") .and.callFake((req, res) => { params = req.params; res.status(200).end(); }); }); describe("/api/user/1", () => { beforeEach((done) => { request(server.buildApp()) .get("/api/user/1") .expect(200) .then(() => done()) .catch((error) => done.fail(error)); }); it("user_id parameter should be 1", () => { expect(params.user_id).toEqual("1"); }); }); describe("when i call /api/user/1/address/2", () => { beforeEach((done) => { request(server.buildApp()) .get("/api/user/1/address/2") .expect(200) .then(() => done()) .catch((error) => done.fail(error)); }); it("user_id parameter should be 1", () => { expect(params.user_id).toEqual("1"); }); it("address_id parameter should be 2", () => { expect(params.address_id).toEqual("2"); }); }); }); }); });