YUKI Hiroshi
null+****@clear*****
Thu Mar 20 17:58:15 JST 2014
YUKI Hiroshi 2014-03-20 17:58:15 +0900 (Thu, 20 Mar 2014) New Revision: a954eb02436c56ef74436d210322e58fcabc357a https://github.com/droonga/express-droonga/commit/a954eb02436c56ef74436d210322e58fcabc357a Message: Add tests for not cached cases Modified files: test/response-cache/middleware.test.js Modified: test/response-cache/middleware.test.js (+90 -1) =================================================================== --- test/response-cache/middleware.test.js 2014-03-20 17:45:04 +0900 (899047e) +++ test/response-cache/middleware.test.js 2014-03-20 17:58:15 +0900 (86277f7) @@ -23,7 +23,34 @@ suite('Response Cache Middleware', function() { application.get('/fresh', function(request, response){ response.send(200, 'OK'); }); - application.listen(3000, '0.0.0.0'); + application.post('/cached/post', function(request, response){ + response.send(200, 'OK'); + }); + }); + + function assertNotCached(response, done) { + try { + assert.equal(-1, Object.keys(response.headers).indexOf('X-Droonga-Cached'.toLowerCase())); + if (done) + done(); + } catch(error) { + if (done) + done(error); + else + throw error; + } + } + + test('not yet cached', function(done) { + client(application) + .get('/cached/success') + .expect(200) + .end(function(error, response){ + if (error) + return done(error); + else + assertNotCached(response, done); + }); }); test('cached', function(done) { @@ -46,5 +73,67 @@ suite('Response Cache Middleware', function() { }); }); }); + + test('never cached: error response', function(done) { + client(application) + .get('/cached/fail') + .expect(400) + .end(function(error, response){ + if (error) + return done(error); + + client(application) + .get('/cached/fail') + .expect(400) + .end(function(error, response){ + if (error) + done(error); + else + assertNotCached(response, done); + }); + }); + }); + + test('never cached: not matched', function(done) { + client(application) + .get('/fresh') + .expect(200) + .end(function(error, response){ + if (error) + return done(error); + + client(application) + .get('/fresh') + .expect(200) + .end(function(error, response){ + if (error) + done(error); + else + assertNotCached(response, done); + }); + }); + }); + + test('never cached: not GET method', function(done) { + client(application) + .post('/cached/post') + .send('OK') + .expect(200) + .end(function(error, response){ + if (error) + return done(error); + + client(application) + .post('/cached/post') + .send('OK') + .expect(200) + .end(function(error, response){ + if (error) + done(error); + else + assertNotCached(response, done); + }); + }); + }); }); -------------- next part -------------- HTML����������������������������...다운로드