@@ -77,11 +77,15 @@ describe('finalhandler(req, res)', function () {
7777 } )
7878
7979 describe ( 'error response' , function ( ) {
80- it ( 'should include error stack' , function ( done ) {
80+ it ( 'should not include stack trace ' , function ( done ) {
8181 var server = createServer ( new Error ( 'boom!' ) )
8282 request ( server )
8383 . get ( '/foo' )
84- . expect ( 500 , / E r r o r : b o o m ! .* a t .* : [ 0 - 9 ] + : [ 0 - 9 ] + / , done )
84+ . expect ( 500 , / I n t e r n a l S e r v e r E r r o r / , function ( err , res ) {
85+ if ( err ) return done ( err )
86+ should ( res . text ) . not . match ( / b o o m ! / )
87+ done ( )
88+ } )
8589 } )
8690
8791 it ( 'should handle HEAD' , function ( done ) {
@@ -99,26 +103,6 @@ describe('finalhandler(req, res)', function () {
99103 . expect ( 500 , done )
100104 } )
101105
102- it ( 'should handle non-error-objects' , function ( done ) {
103- var server = createServer ( 'lame string' )
104- request ( server )
105- . get ( '/foo' )
106- . expect ( 500 , / l a m e s t r i n g / , done )
107- } )
108-
109- it ( 'should send staus code name when production' , function ( done ) {
110- var err = new Error ( 'boom!' )
111- err . status = 501
112- var server = createServer ( err , { env : 'production' } )
113- request ( server )
114- . get ( '/foo' )
115- . expect ( 501 , / N o t I m p l e m e n t e d / , function ( err , res ) {
116- if ( err ) return done ( err )
117- should ( res . text ) . not . match ( / b o o m ! / )
118- done ( )
119- } )
120- } )
121-
122106 describe ( 'when HTML acceptable' , function ( ) {
123107 it ( 'should respond with HTML' , function ( done ) {
124108 var server = createServer ( new Error ( 'boom!' ) )
@@ -128,14 +112,6 @@ describe('finalhandler(req, res)', function () {
128112 . expect ( 'Content-Type' , 'text/html; charset=utf-8' )
129113 . expect ( 500 , / < h t m l / , done )
130114 } )
131-
132- it ( 'should escape error stack' , function ( done ) {
133- var server = createServer ( new Error ( 'boom!' ) )
134- request ( server )
135- . get ( '/foo' )
136- . set ( 'Accept' , 'text/html' )
137- . expect ( 500 , / E r r o r : b o o m ! < b r > & n b s p ; & n b s p ; a t / , done )
138- } )
139115 } )
140116
141117 describe ( 'when HTML not acceptable' , function ( ) {
@@ -145,7 +121,7 @@ describe('finalhandler(req, res)', function () {
145121 . get ( '/foo' )
146122 . set ( 'Accept' , 'application/x-bogus' )
147123 . expect ( 'Content-Type' , 'text/plain; charset=utf-8' )
148- . expect ( 500 , / E r r o r : b o o m ! \n a t / , done )
124+ . expect ( 500 , 'Internal Server Error\n' , done )
149125 } )
150126 } )
151127
@@ -222,6 +198,40 @@ describe('finalhandler(req, res)', function () {
222198 } )
223199 } )
224200 } )
201+
202+ describe ( 'stacktrace' , function ( ) {
203+ it ( 'should include error stack' , function ( done ) {
204+ var server = createServer ( new Error ( 'boom!' ) , { stacktrace : true } )
205+ request ( server )
206+ . get ( '/foo' )
207+ . expect ( 500 , / E r r o r : b o o m ! .* a t .* : [ 0 - 9 ] + : [ 0 - 9 ] + / , done )
208+ } )
209+
210+ it ( 'should escape error stack for HTML response' , function ( done ) {
211+ var server = createServer ( new Error ( 'boom!' ) , { stacktrace : true } )
212+ request ( server )
213+ . get ( '/foo' )
214+ . set ( 'Accept' , 'text/html' )
215+ . expect ( 500 , / E r r o r : b o o m ! < b r > & n b s p ; & n b s p ; a t / , done )
216+ } )
217+
218+ it ( 'should not escape error stack for plain text response' , function ( done ) {
219+ var server = createServer ( new Error ( 'boom!' ) , { stacktrace : true } )
220+ request ( server )
221+ . get ( '/foo' )
222+ . set ( 'Accept' , 'application/x-bogus' )
223+ . expect ( 'Content-Type' , 'text/plain; charset=utf-8' )
224+ . expect ( 500 , / E r r o r : b o o m ! \n a t / , done )
225+ } )
226+
227+ it ( 'should handle non-error-objects' , function ( done ) {
228+ var server = createServer ( 'lame string' , { stacktrace : true } )
229+ request ( server )
230+ . get ( '/foo' )
231+ . set ( 'Accept' , 'text/html' )
232+ . expect ( 500 , / l a m e s t r i n g / , done )
233+ } )
234+ } )
225235} )
226236
227237function createServer ( err , opts ) {
0 commit comments