Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
dcavanagh authored and remojansen committed May 22, 2017
1 parent f338352 commit f04eb85
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
10 changes: 9 additions & 1 deletion src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,14 @@ export class InversifyExpressServer {

private getParam(source: any, paramType: string, name: string) {
let param = source[paramType] || source;
return param[name] || param;
return param[name] || this.checkQueryParam(paramType, param);
}

private checkQueryParam(paramType: string, param: any) {
if (paramType === "query") {
return undefined;
} else {
return param;
}
}
}
34 changes: 33 additions & 1 deletion test/bugs.test.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { expect } from "chai";
import * as express from "express";
import { Controller, Method, Get, Request, Response, RequestParam } from "../src/decorators";
import { Controller, Method, Get, Request, Response, RequestParam, QueryParam } from "../src/decorators";
import { interfaces } from "../src/interfaces";
import { METADATA_KEY, PARAMETER_TYPE } from "../src/constants";
import { InversifyExpressServer } from "../src/server";
Expand Down Expand Up @@ -65,6 +65,38 @@ describe("Unit Test: Previous bugs", () => {
done();
});

});
it("should support empty query params", (done) => {
let container = new Container();

@injectable()
@Controller("/api/test")
class TestController {
@Get("/")
public get(
@Request() req: express.Request,
@Response() res: express.Response,
@QueryParam("empty") empty: string,
@QueryParam("test") test: string
) {
return {empty: empty, test: test};
}

}

container.bind(TYPE.Controller).to(TestController);
let server = new InversifyExpressServer(container);
let app = server.build();

request(app).get("/api/test?test=testquery")
.expect("Content-Type", /json/)
.expect(200)
.then(response1 => {
expect(response1.body.test).to.eql("testquery");
expect(response1.body.empty).to.be.undefined;
done();
});

});

});

0 comments on commit f04eb85

Please sign in to comment.