Sha256: ec5bd24842d5545271bc68bb3b64a0368a13e655574495ec2db611cf4902906e

Contents?: true

Size: 1.89 KB

Versions: 13

Compression:

Stored size: 1.89 KB

Contents

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

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

13 entries across 7 versions & 2 rubygems

Version Path
vulcan-0.8.2 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
vulcan-0.8.2 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js
vulcan-0.8.1 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js
vulcan-0.8.1 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
iron_worker_ng-0.10.1 iron_worker_examples/binary/phantom-nodejs/node_modules/iron_worker/node_modules/iron_core/node_modules/request/tests/test-timeout.js
vulcan-0.8.0 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js
vulcan-0.8.0 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
vulcan-0.7.2 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
vulcan-0.7.2 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js
vulcan-0.7.1 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
vulcan-0.7.1 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js
vulcan-0.7.0 server/node_modules/cradle/node_modules/request/tests/test-timeout.js
vulcan-0.7.0 server/node_modules/cradle/node_modules/follow/node_modules/request/tests/test-timeout.js