Pārlūkot izejas kodu

don't respond with 304 on error when debugging is enabled

jomo 8 gadi atpakaļ
vecāks
revīzija
c02d3d33e9
2 mainītis faili ar 5 papildinājumiem un 1 dzēšanām
  1. 2 1
      lib/response.js
  2. 3 0
      test/test.js

+ 2 - 1
lib/response.js

@@ -70,7 +70,8 @@ module.exports = function(request, response, result) {
   // handle etag caching
   var incoming_etag = request.headers["if-none-match"];
   // also respond with 304 on server error (use client's version)
-  if (incoming_etag && (incoming_etag === etag || result.status === -1)) {
+  // don't respond with 304 when debugging is enabled
+  if (incoming_etag && (incoming_etag === etag || result.status === -1 && !config.server.debug_enabled)) {
     response.writeHead(304, headers);
     response.end();
     return;

+ 3 - 0
test/test.js

@@ -801,12 +801,15 @@ describe("Crafatar", function() {
     });
 
     it("should return 304 on server error", function(done) {
+      var original_debug = config.server.debug_enabled;
       var original_timeout = config.server.http_timeout;
+      config.server.debug_enabled = false;
       config.server.http_timeout = 1;
       request.get({url: "http://localhost:3000/avatars/whatever", headers: {"If-None-Match": '"some-etag"'}}, function(error, res, body) {
         assert.ifError(error);
         assert.ifError(body);
         assert.strictEqual(res.statusCode, 304);
+        config.server.debug_enabled = original_debug;
         config.server.http_timeout = original_timeout;
         done();
       });