11
2- process . env . NODE_ENV = 'test' ;
3-
4- var connect = require ( 'connect' ) ;
52var http = require ( 'http' ) ;
63var path = require ( 'path' ) ;
74var request = require ( 'supertest' ) ;
@@ -18,9 +15,6 @@ describe('serveStatic()', function(){
1815 before ( function ( ) {
1916 server = createServer ( ) ;
2017 } ) ;
21- after ( function ( done ) {
22- server . close ( done ) ;
23- } ) ;
2418
2519 it ( 'should serve static files' , function ( done ) {
2620 request ( server )
@@ -129,9 +123,6 @@ describe('serveStatic()', function(){
129123 before ( function ( ) {
130124 server = createServer ( '.' ) ;
131125 } ) ;
132- after ( function ( done ) {
133- server . close ( done ) ;
134- } ) ;
135126
136127 it ( 'should be served with "."' , function ( done ) {
137128 var dest = relative . split ( path . sep ) . join ( '/' ) ;
@@ -146,9 +137,6 @@ describe('serveStatic()', function(){
146137 before ( function ( ) {
147138 server = createServer ( fixtures , { 'hidden' : true } ) ;
148139 } ) ;
149- after ( function ( done ) {
150- server . close ( done ) ;
151- } ) ;
152140
153141 it ( 'should be served when hidden: true is given' , function ( done ) {
154142 request ( server )
@@ -162,9 +150,6 @@ describe('serveStatic()', function(){
162150 before ( function ( ) {
163151 server = createServer ( fixtures , { 'maxAge' : Infinity } ) ;
164152 } ) ;
165- after ( function ( done ) {
166- server . close ( done ) ;
167- } ) ;
168153
169154 it ( 'should be reasonable when infinite' , function ( done ) {
170155 request ( server )
@@ -179,9 +164,6 @@ describe('serveStatic()', function(){
179164 before ( function ( ) {
180165 server = createServer ( ) ;
181166 } ) ;
182- after ( function ( done ) {
183- server . close ( done ) ;
184- } ) ;
185167
186168 it ( 'should respond with 403 Forbidden' , function ( done ) {
187169 request ( server )
@@ -201,9 +183,6 @@ describe('serveStatic()', function(){
201183 before ( function ( ) {
202184 server = createServer ( ) ;
203185 } ) ;
204- after ( function ( done ) {
205- server . close ( done ) ;
206- } ) ;
207186
208187 it ( 'should next()' , function ( done ) {
209188 request ( server )
@@ -217,9 +196,6 @@ describe('serveStatic()', function(){
217196 before ( function ( ) {
218197 server = createServer ( ) ;
219198 } ) ;
220- after ( function ( done ) {
221- server . close ( done ) ;
222- } ) ;
223199
224200 it ( 'should support byte ranges' , function ( done ) {
225201 request ( server )
@@ -319,9 +295,6 @@ describe('serveStatic()', function(){
319295 before ( function ( ) {
320296 server = createServer ( ) ;
321297 } ) ;
322- after ( function ( done ) {
323- server . close ( done ) ;
324- } ) ;
325298
326299 it ( 'should respond with 400' , function ( done ) {
327300 request ( server )
@@ -335,9 +308,6 @@ describe('serveStatic()', function(){
335308 before ( function ( ) {
336309 server = createServer ( ) ;
337310 } ) ;
338- after ( function ( done ) {
339- server . close ( done ) ;
340- } ) ;
341311
342312 it ( 'should next()' , function ( done ) {
343313 var path = Array ( 100 ) . join ( 'foobar' ) ;
@@ -353,9 +323,6 @@ describe('serveStatic()', function(){
353323 before ( function ( ) {
354324 server = createServer ( ) ;
355325 } ) ;
356- after ( function ( done ) {
357- server . close ( done ) ;
358- } ) ;
359326
360327 it ( 'should next()' , function ( done ) {
361328 request ( server )
@@ -367,12 +334,10 @@ describe('serveStatic()', function(){
367334 describe ( 'when index at mount point' , function ( ) {
368335 var server ;
369336 before ( function ( ) {
370- var app = connect ( ) ;
371- app . use ( '/users' , serveStatic ( 'test/fixtures/users' ) ) ;
372- server = app . listen ( ) ;
373- } ) ;
374- after ( function ( done ) {
375- server . close ( done ) ;
337+ server = createServer ( 'test/fixtures/users' , null , function ( req ) {
338+ req . originalUrl = req . url ;
339+ req . url = '/' + req . url . split ( '/' ) . slice ( 2 ) . join ( '/' ) ;
340+ } ) ;
376341 } ) ;
377342
378343 it ( 'should redirect correctly' , function ( done ) {
@@ -386,12 +351,10 @@ describe('serveStatic()', function(){
386351 describe ( 'when mounted' , function ( ) {
387352 var server ;
388353 before ( function ( ) {
389- var app = connect ( ) ;
390- app . use ( '/static' , serveStatic ( fixtures ) ) ;
391- server = app . listen ( ) ;
392- } ) ;
393- after ( function ( done ) {
394- server . close ( done ) ;
354+ server = createServer ( fixtures , null , function ( req ) {
355+ req . originalUrl = req . url ;
356+ req . url = '/' + req . url . split ( '/' ) . slice ( 2 ) . join ( '/' ) ;
357+ } ) ;
395358 } ) ;
396359
397360 it ( 'should redirect relative to the originalUrl' , function ( done ) {
@@ -405,22 +368,10 @@ describe('serveStatic()', function(){
405368 describe ( 'when responding non-2xx or 304' , function ( ) {
406369 var server ;
407370 before ( function ( ) {
408- var app = connect ( ) ;
409371 var n = 0 ;
410-
411- app . use ( function ( req , res , next ) {
412- switch ( n ++ ) {
413- case 0 : return next ( ) ;
414- case 1 : res . statusCode = 500 ; return next ( ) ;
415- }
372+ server = createServer ( fixtures , null , function ( req , res ) {
373+ if ( n ++ ) res . statusCode = 500 ;
416374 } ) ;
417-
418- app . use ( serveStatic ( fixtures ) ) ;
419-
420- server = app . listen ( ) ;
421- } ) ;
422- after ( function ( done ) {
423- server . close ( done ) ;
424375 } ) ;
425376
426377 it ( 'should respond as-is' , function ( done ) {
@@ -436,38 +387,18 @@ describe('serveStatic()', function(){
436387 } ) ;
437388 } ) ;
438389 } ) ;
439-
440- describe ( 'raw http server' , function ( ) {
441- var server ;
442- before ( function ( ) {
443- var middleware = serveStatic ( fixtures ) ;
444- server = http . createServer ( function ( req , res ) {
445- middleware ( req , res , function ( err ) {
446- res . statusCode = err ? 500 : 404 ;
447- res . end ( err ? err . stack : '' ) ;
448- } ) ;
449- } ) ;
450- server . listen ( ) ;
451- } ) ;
452- after ( function ( done ) {
453- server . close ( done ) ;
454- } ) ;
455-
456- it ( 'should work on raw node.js http servers' , function ( done ) {
457- request ( server )
458- . get ( '/todo.txt' )
459- . expect ( 200 , '- groceries' , done ) ;
460- } ) ;
461- } ) ;
462390} ) ;
463391
464- function createServer ( dir , opts ) {
465- var app = connect ( ) ;
392+ function createServer ( dir , opts , fn ) {
466393 dir = dir || fixtures ;
467- app . use ( serveStatic ( dir , opts ) ) ;
468- app . use ( function ( req , res ) {
469- res . statusCode = 404 ;
470- res . end ( 'sorry!' ) ;
394+
395+ var _serve = serveStatic ( dir , opts ) ;
396+
397+ return http . createServer ( function ( req , res ) {
398+ fn && fn ( req , res ) ;
399+ _serve ( req , res , function ( err ) {
400+ res . statusCode = err ? ( err . status || 500 ) : 404 ;
401+ res . end ( err ? err . stack : 'sorry!' ) ;
402+ } ) ;
471403 } ) ;
472- return app . listen ( ) ;
473404}
0 commit comments