Skip to content

Commit

Permalink
Merge pull request #1277 from simov/test-coverage
Browse files Browse the repository at this point in the history
Add Coveralls configuration
  • Loading branch information
nylen committed Dec 8, 2014
2 parents 90fbd7c + 9c5fbd3 commit 998831d
Show file tree
Hide file tree
Showing 6 changed files with 99 additions and 101 deletions.
3 changes: 2 additions & 1 deletion .gitignore
@@ -1,2 +1,3 @@
node_modules
.idea
coverage
.idea
1 change: 1 addition & 0 deletions .travis.yml
Expand Up @@ -2,6 +2,7 @@ language: node_js
node_js:
- "0.8"
- "0.10"
after_script: ./node_modules/.bin/istanbul cover ./node_modules/tape/bin/tape tests/test-*.js --report lcovonly && cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js --verbose
webhooks:
urls: https://webhooks.gitter.im/e/237280ed4796c19cc626
on_success: change # options: [always|never|change] default: always
Expand Down
4 changes: 3 additions & 1 deletion package.json
Expand Up @@ -47,6 +47,8 @@
"eslint": "0.5.1",
"rimraf": "~2.2.8",
"tape": "~3.0.0",
"taper": "~0.3.0"
"taper": "~0.3.0",
"istanbul": "~0.3.2",
"coveralls": "~2.11.2"
}
}
1 change: 1 addition & 0 deletions tests/test-node-debug.js
Expand Up @@ -24,6 +24,7 @@ tape('setup', function(t) {

tape('a simple request should not fail with debugging enabled', function(t) {
request.debug = true
stderr = []

request('http://localhost:6767', function(err, res, body) {
t.ifError(err, 'the request did not fail')
Expand Down
10 changes: 2 additions & 8 deletions tests/test-pipes.js
Expand Up @@ -137,6 +137,7 @@ tape('piping from a file', function(t) {
if (req.method === 'PUT') {
t.equal(req.headers['content-type'], 'application/javascript')
t.end()
res.end()
}
})
fs.createReadStream(__filename).pipe(request.put(s.url + '/pushjs'))
Expand Down Expand Up @@ -275,12 +276,5 @@ tape('request.pipefilter is called correctly', function(t) {

tape('cleanup', function(t) {
s.close()
// TODO - which test is causing the process not to exit?
setTimeout(function() {
t.end()
setTimeout(function() {
/*eslint no-process-exit:0*/
process.exit(0)
}, 10)
}, 300)
t.end()
})
181 changes: 90 additions & 91 deletions tests/test-timeout.js
@@ -1,119 +1,118 @@
'use strict'

if (process.env.TRAVIS === 'true') {
console.error('This test is unreliable on Travis; skipping.')
/*eslint no-process-exit:0*/
process.exit(0)
}

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

var s = server.createServer()

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

function checkErrCode(t, err) {
t.notEqual(err, null)
t.ok(err.code === 'ETIMEDOUT' || err.code === 'ESOCKETTIMEDOUT',
'Error ETIMEDOUT or ESOCKETTIMEDOUT')
}

tape('setup', function(t) {
s.listen(s.port, function() {
t.end()
if (process.env.TRAVIS === 'true') {
console.error('This test is unreliable on Travis; skipping.')
/*eslint no-process-exit:0*/
} else {
var server = require('./server')
, events = require('events')
, stream = require('stream')
, request = require('../index')
, tape = require('tape')

var s = server.createServer()

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

tape('should timeout', function(t) {
var shouldTimeout = {
url: s.url + '/timeout',
timeout: 100
}

request(shouldTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
tape('setup', function(t) {
s.listen(s.port, function() {
t.end()
})
})
})

tape('should timeout with events', function(t) {
t.plan(3)

var shouldTimeoutWithEvents = {
url: s.url + '/timeout',
timeout: 100
}
tape('should timeout', function(t) {
var shouldTimeout = {
url: s.url + '/timeout',
timeout: 100
}

var eventsEmitted = 0
request(shouldTimeoutWithEvents)
.on('error', function(err) {
eventsEmitted++
t.equal(1, eventsEmitted)
request(shouldTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
})
})
})

tape('should timeout with events', function(t) {
t.plan(3)

var shouldTimeoutWithEvents = {
url: s.url + '/timeout',
timeout: 100
}

var eventsEmitted = 0
request(shouldTimeoutWithEvents)
.on('error', function(err) {
eventsEmitted++
t.equal(1, eventsEmitted)
checkErrCode(t, err)
})
})

tape('should not timeout', function(t) {
var shouldntTimeout = {
url: s.url + '/timeout',
timeout: 1200
}
tape('should not timeout', function(t) {
var shouldntTimeout = {
url: s.url + '/timeout',
timeout: 1200
}

request(shouldntTimeout, function(err, res, body) {
t.equal(err, null)
t.equal(body, 'waited')
t.end()
request(shouldntTimeout, function(err, res, body) {
t.equal(err, null)
t.equal(body, 'waited')
t.end()
})
})
})

tape('no timeout', function(t) {
var noTimeout = {
url: s.url + '/timeout'
}
tape('no timeout', function(t) {
var noTimeout = {
url: s.url + '/timeout'
}

request(noTimeout, function(err, res, body) {
t.equal(err, null)
t.equal(body, 'waited')
t.end()
request(noTimeout, function(err, res, body) {
t.equal(err, null)
t.equal(body, 'waited')
t.end()
})
})
})

tape('negative timeout', function(t) { // should be treated a zero or the minimum delay
var negativeTimeout = {
url: s.url + '/timeout',
timeout: -1000
}
tape('negative timeout', function(t) { // should be treated a zero or the minimum delay
var negativeTimeout = {
url: s.url + '/timeout',
timeout: -1000
}

request(negativeTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
request(negativeTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
})
})
})

tape('float timeout', function(t) { // should be rounded by setTimeout anyway
var floatTimeout = {
url: s.url + '/timeout',
timeout: 100.76
}
tape('float timeout', function(t) { // should be rounded by setTimeout anyway
var floatTimeout = {
url: s.url + '/timeout',
timeout: 100.76
}

request(floatTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
request(floatTimeout, function(err, res, body) {
checkErrCode(t, err)
t.end()
})
})
})

tape('cleanup', function(t) {
s.close()
t.end()
})
tape('cleanup', function(t) {
s.close()
t.end()
})
}

0 comments on commit 998831d

Please sign in to comment.