Make tests compatible with PostgreSQL 10
PostgreSQL 10 reports its version as only `major.minor`, so it can’t be parsed with semver. The `server_version_num` setting is a major version followed by a four-digit minor version since version 10, and was a three-digit major version followed by a two-digit minor version before that.
This commit is contained in:
parent
389c25f44d
commit
8ce7e13b93
@ -9,7 +9,7 @@ if (helper.config.binary) {
|
||||
test('can read and write json', function() {
|
||||
helper.pg.connect(helper.config, function(err, client, done) {
|
||||
assert.ifError(err);
|
||||
helper.versionGTE(client, '9.2.0', assert.success(function(jsonSupported) {
|
||||
helper.versionGTE(client, '90200', assert.success(function(jsonSupported) {
|
||||
if(!jsonSupported) {
|
||||
console.log('skip json test on older versions of postgres');
|
||||
done();
|
||||
|
@ -6,7 +6,7 @@ function killIdleQuery(targetQuery) {
|
||||
var pidColName = 'procpid'
|
||||
var queryColName = 'current_query';
|
||||
client2.connect(assert.success(function() {
|
||||
helper.versionGTE(client2, '9.2.0', assert.success(function(isGreater) {
|
||||
helper.versionGTE(client2, '90200', assert.success(function(isGreater) {
|
||||
if(isGreater) {
|
||||
pidColName = 'pid';
|
||||
queryColName = 'query';
|
||||
|
@ -7,7 +7,7 @@ test('error during query execution', function() {
|
||||
var sleepQuery = 'select pg_sleep(5)';
|
||||
var pidColName = 'procpid'
|
||||
var queryColName = 'current_query';
|
||||
helper.versionGTE(client, '9.2.0', assert.success(function(isGreater) {
|
||||
helper.versionGTE(client, 90200, assert.success(function(isGreater) {
|
||||
if(isGreater) {
|
||||
pidColName = 'pid';
|
||||
queryColName = 'query';
|
||||
@ -43,7 +43,7 @@ if(helper.config.native) return;
|
||||
test('9.3 column error fields', function() {
|
||||
var client = new Client(helper.args);
|
||||
client.connect(assert.success(function() {
|
||||
helper.versionGTE(client, '9.3.0', assert.success(function(isGreater) {
|
||||
helper.versionGTE(client, 90300, assert.success(function(isGreater) {
|
||||
if(!isGreater) {
|
||||
return client.end();
|
||||
}
|
||||
@ -65,7 +65,7 @@ test('9.3 column error fields', function() {
|
||||
test('9.3 constraint error fields', function() {
|
||||
var client = new Client(helper.args);
|
||||
client.connect(assert.success(function() {
|
||||
helper.versionGTE(client, '9.3.0', assert.success(function(isGreater) {
|
||||
helper.versionGTE(client, 90300, assert.success(function(isGreater) {
|
||||
if(!isGreater) {
|
||||
console.log('skip 9.3 error field on older versions of postgres');
|
||||
return client.end();
|
||||
|
@ -5,7 +5,7 @@ test('should return insert metadata', function() {
|
||||
pg.connect(helper.config, assert.calls(function(err, client, done) {
|
||||
assert.isNull(err);
|
||||
|
||||
helper.versionGTE(client, '9.0.0', assert.success(function(hasRowCount) {
|
||||
helper.versionGTE(client, '90000', assert.success(function(hasRowCount) {
|
||||
client.query("CREATE TEMP TABLE zugzug(name varchar(10))", assert.calls(function(err, result) {
|
||||
assert.isNull(err);
|
||||
assert.equal(result.oid, null);
|
||||
|
@ -11,7 +11,7 @@ pg.connect(helper.config, assert.success(function(client, done) {
|
||||
pg.connect(helper.config, assert.success(function(client2, done2) {
|
||||
client2.id = 2;
|
||||
var pidColName = 'procpid';
|
||||
helper.versionGTE(client2, '9.2.0', assert.success(function(isGreater) {
|
||||
helper.versionGTE(client2, '90200', assert.success(function(isGreater) {
|
||||
var killIdleQuery = 'SELECT pid, (SELECT pg_terminate_backend(pid)) AS killed FROM pg_stat_activity WHERE state = $1';
|
||||
var params = ['idle'];
|
||||
if(!isGreater) {
|
||||
|
@ -13,14 +13,13 @@ helper.client = function(cb) {
|
||||
return client;
|
||||
};
|
||||
|
||||
var semver = require('semver');
|
||||
helper.versionGTE = function(client, versionString, callback) {
|
||||
client.query('SELECT version()', assert.calls(function(err, result) {
|
||||
if(err) return callback(err);
|
||||
var version = result.rows[0].version.split(' ')[1];
|
||||
return callback(null, semver.gte(version, versionString));
|
||||
}));
|
||||
};
|
||||
helper.versionGTE = function (client, testVersion, callback) {
|
||||
client.query('SHOW server_version_num', assert.calls(function (err, result) {
|
||||
if (err) return callback(err)
|
||||
var version = parseInt(result.rows[0].server_version_num, 10)
|
||||
return callback(null, version >= testVersion)
|
||||
}))
|
||||
}
|
||||
|
||||
//export parent helper stuffs
|
||||
module.exports = helper;
|
||||
|
Loading…
Reference in New Issue
Block a user