59 lines
1.6 KiB
JavaScript
59 lines
1.6 KiB
JavaScript
var helper = require('./test-helper')
|
|
var async = require('async')
|
|
|
|
var testWithoutDomain = function(cb) {
|
|
test('no domain', function() {
|
|
assert(!process.domain)
|
|
helper.pg.connect(helper.config, assert.success(function(client, done) {
|
|
assert(!process.domain)
|
|
done()
|
|
cb()
|
|
}))
|
|
})
|
|
}
|
|
|
|
var testWithDomain = function(cb) {
|
|
test('with domain', function() {
|
|
assert(!process.domain)
|
|
var domain = require('domain').create()
|
|
domain.run(function() {
|
|
var startingDomain = process.domain
|
|
assert(startingDomain)
|
|
helper.pg.connect(helper.config, assert.success(function(client, done) {
|
|
assert(process.domain, 'no domain exists in connect callback')
|
|
assert.equal(startingDomain, process.domain, 'domain was lost when checking out a client')
|
|
var query = client.query('SELECT NOW()', assert.success(function() {
|
|
assert(process.domain, 'no domain exists in query callback')
|
|
assert.equal(startingDomain, process.domain, 'domain was lost when checking out a client')
|
|
done(true)
|
|
process.domain.exit()
|
|
cb()
|
|
}))
|
|
}))
|
|
})
|
|
})
|
|
}
|
|
|
|
var testErrorWithDomain = function(cb) {
|
|
test('error on domain', function() {
|
|
var domain = require('domain').create()
|
|
domain.on('error', function() {
|
|
cb()
|
|
})
|
|
domain.run(function() {
|
|
helper.pg.connect(helper.config, assert.success(function(client, done) {
|
|
client.query('SELECT SLDKJFLSKDJF')
|
|
client.on('drain', done)
|
|
}))
|
|
})
|
|
})
|
|
}
|
|
|
|
async.series([
|
|
testWithoutDomain,
|
|
testWithDomain,
|
|
testErrorWithDomain
|
|
], function() {
|
|
helper.pg.end()
|
|
})
|