Sha256: 24b4ef06640d974ef8984c4bb9c38016a2559867c08861293ad17170d3b8e88e

Contents?: true

Size: 1.88 KB

Versions: 19

Compression:

Stored size: 1.88 KB

Contents

var server = require('./server')
  , events = require('events')
  , stream = require('stream')
  , assert = require('assert')
  , request = require('../index')
  ;

var s = server.createServer();
var expectedBody = "waited";
var remainingTests = 5;

s.listen(s.port, function () {
  // Request that waits for 200ms
  s.on('/timeout', function (req, resp) {
    setTimeout(function(){
      resp.writeHead(200, {'content-type':'text/plain'})
      resp.write(expectedBody)
      resp.end()
    }, 200);
  });

  // Scenario that should timeout
  var shouldTimeout = {
    url: s.url + "/timeout",
    timeout:100
  }


  request(shouldTimeout, function (err, resp, body) {
    assert.equal(err.code, "ETIMEDOUT");
    checkDone();
  })


  // Scenario that shouldn't timeout
  var shouldntTimeout = {
    url: s.url + "/timeout",
    timeout:300
  }

  request(shouldntTimeout, function (err, resp, body) {
    assert.equal(err, null);
    assert.equal(expectedBody, body)
    checkDone();
  })

  // Scenario with no timeout set, so shouldn't timeout
  var noTimeout = {
    url: s.url + "/timeout"
  }

  request(noTimeout, function (err, resp, body) {
    assert.equal(err);
    assert.equal(expectedBody, body)
    checkDone();
  })

  // Scenario with a negative timeout value, should be treated a zero or the minimum delay
  var negativeTimeout = {
    url: s.url + "/timeout",
    timeout:-1000
  }

  request(negativeTimeout, function (err, resp, body) {
    assert.equal(err.code, "ETIMEDOUT");
    checkDone();
  })

  // Scenario with a float timeout value, should be rounded by setTimeout anyway
  var floatTimeout = {
    url: s.url + "/timeout",
    timeout: 100.76
  }

  request(floatTimeout, function (err, resp, body) {
    assert.equal(err.code, "ETIMEDOUT");
    checkDone();
  })

  function checkDone() {
    if(--remainingTests == 0) {
      s.close();
      console.log("All tests passed.");
    }
  }
})

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
ela-4.1.6 node_modules/request/tests/test-timeout.js
ela-4.1.5 node_modules/request/tests/test-timeout.js
ela-4.1.4 node_modules/request/tests/test-timeout.js
ela-4.1.3 node_modules/request/tests/test-timeout.js
ela-4.1.2 node_modules/request/tests/test-timeout.js
ela-4.1.1 node_modules/request/tests/test-timeout.js
ela-4.1.0 node_modules/request/tests/test-timeout.js
ela-4.0.0 node_modules/request/tests/test-timeout.js
ela-3.4.3 node_modules/request/tests/test-timeout.js
ela-3.4.2 node_modules/request/tests/test-timeout.js
ela-3.4.0 node_modules/request/tests/test-timeout.js
ela-3.3.1 node_modules/request/tests/test-timeout.js
ela-3.3.0 node_modules/request/tests/test-timeout.js
ela-3.2.0 node_modules/request/tests/test-timeout.js
ela-3.1.1 node_modules/request/tests/test-timeout.js
ela-3.1.0 node_modules/request/tests/test-timeout.js
ela-3.0.0 node_modules/request/tests/test-timeout.js
ela-2.0.0 node_modules/request/tests/test-timeout.js
ela-1.1.0 node_modules/request/tests/test-timeout.js