[Groonga-commit] droonga/express-droonga at a954eb0 [master] Add tests for not cached cases

Back to archive index

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����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index