diff --git a/express/express-tests.ts b/express/express-tests.ts index 3efdf19a60..57d1d638c0 100644 --- a/express/express-tests.ts +++ b/express/express-tests.ts @@ -1489,3 +1489,10 @@ function test_middleware() { app.use(express.static('public')); app.use(router.middleware); } + +//////////////////// + +// make sure server can be shut down +var testShutdownServer = app.listen(0); +console.log('listening on port ' + testShutdownServer.address().port); +testShutdownServer.close(); diff --git a/express/express.d.ts b/express/express.d.ts index 243aa41d4d..7dd1706299 100644 --- a/express/express.d.ts +++ b/express/express.d.ts @@ -1112,15 +1112,15 @@ declare module "express" { * http.createServer(app).listen(80); * https.createServer({ ... }, app).listen(443); */ - listen(port: number, hostname: string, backlog: number, callback?: Function): void; + listen(port: number, hostname: string, backlog: number, callback?: Function): http.Server; - listen(port: number, hostname: string, callback?: Function): void; + listen(port: number, hostname: string, callback?: Function): http.Server; - listen(port: number, callback?: Function): void; + listen(port: number, callback?: Function): http.Server; - listen(path: string, callback?: Function): void; + listen(path: string, callback?: Function): http.Server; - listen(handle: any, listeningListener?: Function): void; + listen(handle: any, listeningListener?: Function): http.Server; route: IRoute; diff --git a/node/node-tests.ts b/node/node-tests.ts index f82fb9530c..a77a4b39b6 100644 --- a/node/node-tests.ts +++ b/node/node-tests.ts @@ -7,6 +7,8 @@ import zlib = require("zlib"); import url = require('url'); import util = require("util"); import crypto = require("crypto"); +import http = require("http"); +import net = require("net"); assert(1 + 1 - 2 === 0, "The universe isn't how it should."); @@ -82,9 +84,14 @@ function stream_readable_pipe_test() { r.pipe(z).pipe(w); } - //////////////////////////////////////////////////// /// Crypto tests : http://nodejs.org/api/crypto.html //////////////////////////////////////////////////// var hmacResult: string = crypto.createHmac('md5', 'hello').update('world').digest('hex'); + +//////////////////////////////////////////////////// + +// Make sure .listen() and .close() retuern a Server instance +http.createServer().listen(0).close().address(); +net.createServer().listen(0).close().address(); diff --git a/node/node.d.ts b/node/node.d.ts index 7e94740879..42398496ee 100644 --- a/node/node.d.ts +++ b/node/node.d.ts @@ -252,10 +252,11 @@ declare module "http" { import stream = require("stream"); export interface Server extends NodeEventEmitter { - listen(port: number, hostname?: string, backlog?: number, callback?: Function): void; - listen(path: string, callback?: Function): void; - listen(handle: any, listeningListener?: Function): void; - close(cb?: any): void; + listen(port: number, hostname?: string, backlog?: number, callback?: Function): Server; + listen(path: string, callback?: Function): Server; + listen(handle: any, listeningListener?: Function): Server; + close(cb?: any): Server; + address(): { port: number; family: string; address: string; }; maxHeadersCount: number; } export interface ServerRequest extends NodeEventEmitter, ReadableStream { @@ -711,10 +712,10 @@ declare module "net" { }; export interface Server extends Socket { - listen(port: number, host?: string, backlog?: number, listeningListener?: Function): void; - listen(path: string, listeningListener?: Function): void; - listen(handle: any, listeningListener?: Function): void; - close(callback?: Function): void; + listen(port: number, host?: string, backlog?: number, listeningListener?: Function): Server; + listen(path: string, listeningListener?: Function): Server; + listen(handle: any, listeningListener?: Function): Server; + close(callback?: Function): Server; address(): { port: number; family: string; address: string; }; maxConnections: number; connections: number; @@ -957,12 +958,12 @@ declare module "tls" { export interface Server extends net.Server { // Extended base methods - listen(port: number, host?: string, backlog?: number, listeningListener?: Function): void; - listen(path: string, listeningListener?: Function): void; - listen(handle: any, listeningListener?: Function): void; + listen(port: number, host?: string, backlog?: number, listeningListener?: Function): Server; + listen(path: string, listeningListener?: Function): Server; + listen(handle: any, listeningListener?: Function): Server; - listen(port: number, host?: string, callback?: Function): void; - close(): void; + listen(port: number, host?: string, callback?: Function): Server; + close(): Server; address(): { port: number; family: string; address: string; }; addContext(hostName: string, credentials: { key: string;