@@ -28,6 +28,7 @@ describe('cli', function () {
2828  var  request 
2929  var  dbFile 
3030  var  routesFile 
31+   var  middlewareFiles 
3132
3233  beforeEach ( function  ( )  { 
3334    dbFile  =  tempWrite . sync ( JSON . stringify ( { 
@@ -41,6 +42,18 @@ describe('cli', function () {
4142      '/blog/' : '/' 
4243    } ) ,  'routes.json' ) 
4344
45+     middlewareFiles  =  [ 
46+       tempWrite . sync ( 
47+         'module.exports = function (req, res, next) {\n'  + 
48+         '  res.header("X-Hello", "World")\n'  + 
49+         '  next() }' 
50+         ,  'helloWorldMiddleware.js' ) , 
51+       tempWrite . sync ( 
52+         'module.exports = function (req, res, next) {\n'  + 
53+         '  res.header("X-Konnichiwa", "Sekai")\n'  + 
54+         '  next() }' 
55+         ,  'helloWorldJaMiddlewares.js' ) 
56+     ] 
4457    ++ PORT 
4558    request  =  supertest ( 'http://localhost:'  +  PORT ) 
4659  } ) 
@@ -109,21 +122,38 @@ describe('cli', function () {
109122    } ) 
110123  } ) 
111124
112-   describe ( 'db.json -r routes.json -i _id --read-only' ,  function  ( )  { 
125+   describe ( 'db.json -r routes.json -m helloWorldMiddleware.js - i _id --read-only' ,  function  ( )  { 
113126    beforeEach ( function  ( done )  { 
114-       child  =  cli ( [ dbFile ,  '-r' ,  routesFile ,  '-i' ,  '_id' ,  '--read-only' ] ) 
127+       child  =  cli ( [ dbFile ,  '-r' ,  routesFile ,  '-m'  ,   middlewareFiles [ 0 ] ,   '- i',  '_id' ,  '--read-only' ] ) 
115128      serverReady ( PORT ,  done ) 
116129    } ) 
117130
118131    it ( 'should use routes.json and _id as the identifier' ,  function  ( done )  { 
119132      request . get ( '/blog/posts/2' ) . expect ( 200 ,  done ) 
120133    } ) 
121134
135+     it ( 'should apply middlewares' ,  function  ( done )  { 
136+       request . get ( '/blog/posts/2' ) . expect ( 'X-Hello' ,  'World' ,  done ) 
137+     } ) 
138+ 
122139    it ( 'should allow only GET requests' ,  function  ( done )  { 
123140      request . post ( '/blog/posts' ) . expect ( 403 ,  done ) 
124141    } ) 
125142  } ) 
126143
144+   describe ( 'db.json -m helloWorldMiddleware.js -m helloWorldJaMiddleware.js' ,  function  ( )  { 
145+     beforeEach ( function  ( done )  { 
146+       child  =  cli ( [ dbFile ,  '-m' ,  middlewareFiles [ 0 ] ,  '-m' ,  middlewareFiles [ 1 ] ] ) 
147+       serverReady ( PORT ,  done ) 
148+     } ) 
149+ 
150+     it ( 'should apply all middlewares' ,  function  ( done )  { 
151+       request . get ( '/blog/posts' ) 
152+         . expect ( 'X-Hello' ,  'World' ) 
153+         . expect ( 'X-Konnichiwa' ,  'Sekai' ,  done ) 
154+     } ) 
155+   } ) 
156+ 
127157  describe ( 'db.json -d 1000' ,  function  ( )  { 
128158    beforeEach ( function  ( done )  { 
129159      child  =  cli ( [ dbFile ,  '-d' ,  1000 ] ) 
0 commit comments