File tree Expand file tree Collapse file tree 6 files changed +82
-3
lines changed
Expand file tree Collapse file tree 6 files changed +82
-3
lines changed Original file line number Diff line number Diff line change 4141 <Compile Include =" engines\render.js" />
4242 <Compile Include =" routes\index.js" />
4343 <Compile Include =" routes\route.js" />
44+ <Compile Include =" tests\engines\httpHandler.test.js" >
45+ <Publish >False</Publish >
46+ </Compile >
4447 <Compile Include =" tests\routes\index.request.js" >
4548 <Publish >False</Publish >
4649 </Compile >
5053 <Compile Include =" tests\scripts\error.test.js" >
5154 <Publish >False</Publish >
5255 </Compile >
56+ <Compile Include =" tests\scripts\uglyHandler.test.js" >
57+ <Publish >False</Publish >
58+ </Compile >
5359 <Content Include =" scripts\badHandler.js" />
5460 <Content Include =" scripts\error.js" />
61+ <Content Include =" scripts\uglyHandler.js" />
5562 <Content Include =" package.json" />
5663 <Content Include =" README.md" />
5764 <Content Include =" views\index.html" />
6269 <Folder Include =" scripts\" />
6370 <Folder Include =" tests\" />
6471 <Folder Include =" routes\" />
72+ <Folder Include =" tests\engines\" />
6573 <Folder Include =" tests\scripts\" />
6674 <Folder Include =" tests\routes\" />
6775 <Folder Include =" views\" />
Original file line number Diff line number Diff line change 1- function httpHandler ( err , res , content ) {
1+ function httpHandler ( err , res , content ) {
22 if ( err ) {
33 res . writeHead ( 500 , { 'Content-Type' : 'text/plain' } ) ;
4- res . end ( 'An error has occured : ' + err . message ) ;
4+ res . end ( 'Error : ' + err . message ) ;
55 } else {
66 res . writeHead ( 200 , { 'Content-Type' : content . type } ) ;
77 res . end ( content . response ) ;
Original file line number Diff line number Diff line change 1+ function uglyHandler ( fn ) {
2+ try {
3+ return fn ( ) ;
4+ } catch ( e ) {
5+ throw Error ( 'a new error' ) ;
6+ }
7+ }
8+
9+ if ( typeof module === 'object' ) {
10+ module . exports = uglyHandler ;
11+ }
Original file line number Diff line number Diff line change 1+ var target = require ( '../../engines/httpHandler' ) ;
2+ var should = require ( 'should' ) ;
3+
4+ describe ( 'An HTTP engine' , function ( ) {
5+ it ( 'handles errors' , function ( ) {
6+ var res = responseMock ( ) ;
7+ target ( { message : 'error' } , res ) ;
8+ res . getResult ( ) . should . equal ( '500text/plainError: error' ) ;
9+ } ) ;
10+
11+ it ( 'handles responses' , function ( ) {
12+ var res = responseMock ( ) ;
13+ var content = { type : 'type' , response : 'message' } ;
14+ target ( null , res , content ) ;
15+ res . getResult ( ) . should . equal ( '200typemessage' ) ;
16+ } ) ;
17+
18+ function responseMock ( ) {
19+ var result = '' ;
20+
21+ return {
22+ writeHead : writeHead ,
23+ end : end ,
24+ getResult : getResult
25+ } ;
26+
27+ function writeHead ( returnCode , header ) {
28+ result += returnCode + header [ 'Content-Type' ] ;
29+ }
30+
31+ function end ( body ) {
32+ result += body ;
33+ }
34+
35+ function getResult ( ) {
36+ return result ;
37+ }
38+ }
39+ } ) ;
Original file line number Diff line number Diff line change 11var target = require ( '../../scripts/badHandler' ) ;
22var should = require ( 'should' ) ;
33
4- describe ( 'A bad handler' , function ( ) {
4+ describe ( 'A bad error handler' , function ( ) {
55 it ( 'returns a value without errors' , function ( ) {
66 var fn = function ( ) {
77 return 1 ;
Original file line number Diff line number Diff line change 1+ var target = require ( '../../scripts/uglyHandler' ) ;
2+ var should = require ( 'should' ) ;
3+
4+ describe ( 'An ugly error handler' , function ( ) {
5+ it ( 'returns a value without errors' , function ( ) {
6+ var fn = function ( ) {
7+ return 1 ;
8+ } ;
9+ var result = target ( fn ) ;
10+ result . should . equal ( 1 ) ;
11+ } ) ;
12+
13+ it ( 'returns a new error with errors' , function ( ) {
14+ var fn = function ( ) {
15+ throw new TypeError ( 'type error' ) ;
16+ } ;
17+ should . throws ( function ( ) {
18+ target ( fn ) ;
19+ } , Error ) ;
20+ } ) ;
21+ } ) ;
You can’t perform that action at this time.
0 commit comments