tedi
Version:
Express wrappper written in typescript with dependency injection capabilities
78 lines (77 loc) • 3.26 kB
JavaScript
;
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");
});
});
});
});
});