mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
78 lines
2.0 KiB
JavaScript
78 lines
2.0 KiB
JavaScript
'use strict'
|
|
var helper = require('./test-helper')
|
|
var Client = helper.Client
|
|
|
|
var suite = new helper.Suite()
|
|
|
|
var conInfo = helper.config
|
|
|
|
function getConInfo (override) {
|
|
return Object.assign({}, conInfo, override )
|
|
}
|
|
|
|
function getStatementTimeout (conf, cb) {
|
|
var client = new Client(conf)
|
|
client.connect(assert.success(function () {
|
|
client.query('SHOW statement_timeout', assert.success(function (res) {
|
|
var statementTimeout = res.rows[0].statement_timeout
|
|
cb(statementTimeout)
|
|
client.end()
|
|
}))
|
|
}))
|
|
}
|
|
|
|
if (!helper.args.native) { // statement_timeout is not supported with the native client
|
|
suite.test('No default statement_timeout ', function (done) {
|
|
getConInfo()
|
|
getStatementTimeout({}, function (res) {
|
|
assert.strictEqual(res, '0') // 0 = no timeout
|
|
done()
|
|
})
|
|
})
|
|
|
|
suite.test('statement_timeout integer is used', function (done) {
|
|
var conf = getConInfo({
|
|
'statement_timeout': 3000
|
|
})
|
|
getStatementTimeout(conf, function (res) {
|
|
assert.strictEqual(res, '3s')
|
|
done()
|
|
})
|
|
})
|
|
|
|
suite.test('statement_timeout float is used', function (done) {
|
|
var conf = getConInfo({
|
|
'statement_timeout': 3000.7
|
|
})
|
|
getStatementTimeout(conf, function (res) {
|
|
assert.strictEqual(res, '3s')
|
|
done()
|
|
})
|
|
})
|
|
|
|
suite.test('statement_timeout string is used', function (done) {
|
|
var conf = getConInfo({
|
|
'statement_timeout': '3000'
|
|
})
|
|
getStatementTimeout(conf, function (res) {
|
|
assert.strictEqual(res, '3s')
|
|
done()
|
|
})
|
|
})
|
|
|
|
suite.test('statement_timeout actually cancels long running queries', function (done) {
|
|
var conf = getConInfo({
|
|
'statement_timeout': '10' // 10ms to keep tests running fast
|
|
})
|
|
var client = new Client(conf)
|
|
client.connect(assert.success(function () {
|
|
client.query('SELECT pg_sleep( 1 )', function ( error ) {
|
|
client.end()
|
|
assert.strictEqual( error.code, '57014' ) // query_cancelled
|
|
done()
|
|
})
|
|
}))
|
|
})
|
|
|
|
}
|