From c1e3b0d971bd7bbd4d307453bd38202ac333730b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathana=C3=ABl=20L=C3=A9caud=C3=A9?= Date: Tue, 2 Apr 2019 15:00:25 -0400 Subject: [PATCH] http request node: warn user if msg.requestTimeout == 0 --- .../@node-red/nodes/core/io/21-httprequest.js | 4 ++-- test/nodes/core/io/21-httprequest_spec.js | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/io/21-httprequest.js b/packages/node_modules/@node-red/nodes/core/io/21-httprequest.js index d64947e4b..d72e16bad 100644 --- a/packages/node_modules/@node-red/nodes/core/io/21-httprequest.js +++ b/packages/node_modules/@node-red/nodes/core/io/21-httprequest.js @@ -94,10 +94,10 @@ module.exports = function(RED) { opts.maxRedirects = 21; opts.jar = request.jar(); opts.proxy = null; - if (msg.requestTimeout) { + if (msg.requestTimeout !== undefined) { if (isNaN(msg.requestTimeout)) { node.warn(RED._("httpin.errors.timeout-isnan")); - } else if (msg.requestTimeout < 0) { + } else if (msg.requestTimeout < 1) { node.warn(RED._("httpin.errors.timeout-isnegative")); } else { opts.timeout = msg.requestTimeout; diff --git a/test/nodes/core/io/21-httprequest_spec.js b/test/nodes/core/io/21-httprequest_spec.js index 1f37131f5..9a32cef7a 100644 --- a/test/nodes/core/io/21-httprequest_spec.js +++ b/test/nodes/core/io/21-httprequest_spec.js @@ -979,6 +979,29 @@ describe('HTTP Request Node', function() { n1.receive({payload:"foo", requestTimeout: -4}); }); }); + it('should show a warning if msg.requestTimeout is set to 0', function(done) { + var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"GET",ret:"obj",url:getTestURL('/text')}, + {id:"n2", type:"helper"}]; + helper.load(httpRequestNode, flow, function() { + var n1 = helper.getNode("n1"); + var n2 = helper.getNode("n2"); + n2.on("input", function(msg) { + try { + msg.should.have.property('statusCode', 200); + var logEvents = helper.log().args.filter(function(evt) { + return evt[0].type == 'http request'; + }); + logEvents.should.have.length(2); + var tstmp = logEvents[0][0].timestamp; + logEvents[0][0].should.eql({level:helper.log().WARN, id:'n1',type:'http request',msg:'httpin.errors.timeout-isnegative', timestamp:tstmp}); + done(); + } catch(err) { + done(err); + } + }); + n1.receive({payload:"foo", requestTimeout: 0}); + }); + }); it('should pass if response time is faster than timeout set via msg.requestTimeout', function(done) { var flow = [{id:"n1",type:"http request",wires:[["n2"]],method:"GET",ret:"obj",url:getTestURL('/timeout50ms')}, {id:"n2", type:"helper"}];