mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
85 lines
2.1 KiB
JavaScript
85 lines
2.1 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()
|
|
})
|
|
})
|
|
)
|
|
})
|
|
}
|