@@ -31,6 +31,25 @@ describe('app', function(){
3131 . expect ( 200 , 'hello, world!' , done ) ;
3232 } )
3333
34+ it ( 'should invoke all request listeners' , function ( done ) {
35+ var app = connect ( ) ;
36+ var router = http . createServer ( ) ;
37+
38+ router . on ( 'request' , function ( req , res ) {
39+ res . write ( 'hello, ' ) ;
40+ } ) ;
41+ router . on ( 'request' , function ( req , res ) {
42+ res . end ( 'world!' ) ;
43+ } ) ;
44+ app . use ( router ) ;
45+
46+ var server = http . createServer ( app ) ;
47+
48+ request ( server )
49+ . get ( '/' )
50+ . expect ( 200 , 'hello, world!' , done ) ;
51+ } )
52+
3453 it ( 'should be a callable function' , function ( done ) {
3554 var app = connect ( ) ;
3655
@@ -92,6 +111,25 @@ describe('app', function(){
92111 . expect ( 200 , 'oh, boom!' , done ) ;
93112 } )
94113
114+ it ( 'should invoke callback on request listener error' , function ( done ) {
115+ var app = connect ( ) ;
116+ var router = http . createServer ( ) ;
117+
118+ router . on ( 'request' , function ( req , res ) {
119+ throw new Error ( 'boom!' ) ;
120+ } ) ;
121+ app . use ( router ) ;
122+ app . use ( function ( err , req , res , next ) {
123+ res . end ( 'oh, ' + err . message ) ;
124+ } ) ;
125+
126+ var server = http . createServer ( app ) ;
127+
128+ request ( server )
129+ . get ( '/' )
130+ . expect ( 200 , 'oh, boom!' , done ) ;
131+ } )
132+
95133 it ( 'should work as middleware' , function ( done ) {
96134 // custom server handler array
97135 var handlers = [ connect ( ) , function ( req , res , next ) {
@@ -214,6 +252,28 @@ describe('app', function(){
214252 . expect ( 200 , done ) ;
215253 } )
216254
255+ it ( 'should not fire after headers sent in request listener' , function ( done ) {
256+ var app = connect ( ) ;
257+ var router = http . createServer ( ) ;
258+
259+ router . on ( 'request' , function ( req , res ) {
260+ res . end ( 'hello' ) ;
261+ } ) ;
262+ router . on ( 'request' , function ( req , res ) {
263+ res . write ( 'world' ) ;
264+ } ) ;
265+ app . use ( router ) ;
266+ app . use ( function ( req , res ) {
267+ res . end ( 'body' ) ;
268+ } ) ;
269+
270+ var server = http . createServer ( app ) ;
271+
272+ request ( app )
273+ . get ( '/' )
274+ . expect ( 200 , 'hello' , done ) ;
275+ } )
276+
217277 it ( 'shoud have no body for HEAD' , function ( done ) {
218278 var app = connect ( ) ;
219279
0 commit comments