@@ -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