node-postgres/packages/pg/test/unit/client/configuration-tests.js
Sehrope Sarkuni eeb62ba40d test: Replace __dirname concatenations in require(...) with relative paths
Replaces __dirname concatentation in pg test scripts so that editors like
VS Code can automatically generate typings and support code navigation (F12).
2020-05-16 07:41:15 -04:00

169 lines
5.1 KiB
JavaScript

'use strict'
require('./test-helper')
var assert = require('assert')
var pguser = process.env['PGUSER'] || process.env.USER
var pgdatabase = process.env['PGDATABASE'] || process.env.USER
var pgport = process.env['PGPORT'] || 5432
test('client settings', function () {
test('defaults', function () {
var client = new Client()
assert.equal(client.user, pguser)
assert.equal(client.database, pgdatabase)
assert.equal(client.port, pgport)
assert.equal(client.ssl, false)
})
test('custom', function () {
var user = 'brian'
var database = 'pgjstest'
var password = 'boom'
var client = new Client({
user: user,
database: database,
port: 321,
password: password,
ssl: true,
})
assert.equal(client.user, user)
assert.equal(client.database, database)
assert.equal(client.port, 321)
assert.equal(client.password, password)
assert.equal(client.ssl, true)
})
test('custom ssl default on', function () {
var old = process.env.PGSSLMODE
process.env.PGSSLMODE = 'prefer'
var client = new Client()
process.env.PGSSLMODE = old
assert.equal(client.ssl, true)
})
test('custom ssl force off', function () {
var old = process.env.PGSSLMODE
process.env.PGSSLMODE = 'prefer'
var client = new Client({
ssl: false,
})
process.env.PGSSLMODE = old
assert.equal(client.ssl, false)
})
})
test('initializing from a config string', function () {
test('uses connectionString property', function () {
var client = new Client({
connectionString: 'postgres://brian:pass@host1:333/databasename',
})
assert.equal(client.user, 'brian')
assert.equal(client.password, 'pass')
assert.equal(client.host, 'host1')
assert.equal(client.port, 333)
assert.equal(client.database, 'databasename')
})
test('uses the correct values from the config string', function () {
var client = new Client('postgres://brian:pass@host1:333/databasename')
assert.equal(client.user, 'brian')
assert.equal(client.password, 'pass')
assert.equal(client.host, 'host1')
assert.equal(client.port, 333)
assert.equal(client.database, 'databasename')
})
test('uses the correct values from the config string with space in password', function () {
var client = new Client('postgres://brian:pass word@host1:333/databasename')
assert.equal(client.user, 'brian')
assert.equal(client.password, 'pass word')
assert.equal(client.host, 'host1')
assert.equal(client.port, 333)
assert.equal(client.database, 'databasename')
})
test('when not including all values the defaults are used', function () {
var client = new Client('postgres://host1')
assert.equal(client.user, process.env['PGUSER'] || process.env.USER)
assert.equal(client.password, process.env['PGPASSWORD'] || null)
assert.equal(client.host, 'host1')
assert.equal(client.port, process.env['PGPORT'] || 5432)
assert.equal(client.database, process.env['PGDATABASE'] || process.env.USER)
})
test('when not including all values the environment variables are used', function () {
var envUserDefined = process.env['PGUSER'] !== undefined
var envPasswordDefined = process.env['PGPASSWORD'] !== undefined
var envDBDefined = process.env['PGDATABASE'] !== undefined
var envHostDefined = process.env['PGHOST'] !== undefined
var envPortDefined = process.env['PGPORT'] !== undefined
var savedEnvUser = process.env['PGUSER']
var savedEnvPassword = process.env['PGPASSWORD']
var savedEnvDB = process.env['PGDATABASE']
var savedEnvHost = process.env['PGHOST']
var savedEnvPort = process.env['PGPORT']
process.env['PGUSER'] = 'utUser1'
process.env['PGPASSWORD'] = 'utPass1'
process.env['PGDATABASE'] = 'utDB1'
process.env['PGHOST'] = 'utHost1'
process.env['PGPORT'] = 5464
var client = new Client('postgres://host1')
assert.equal(client.user, process.env['PGUSER'])
assert.equal(client.password, process.env['PGPASSWORD'])
assert.equal(client.host, 'host1')
assert.equal(client.port, process.env['PGPORT'])
assert.equal(client.database, process.env['PGDATABASE'])
if (envUserDefined) {
process.env['PGUSER'] = savedEnvUser
} else {
delete process.env['PGUSER']
}
if (envPasswordDefined) {
process.env['PGPASSWORD'] = savedEnvPassword
} else {
delete process.env['PGPASSWORD']
}
if (envDBDefined) {
process.env['PGDATABASE'] = savedEnvDB
} else {
delete process.env['PGDATABASE']
}
if (envHostDefined) {
process.env['PGHOST'] = savedEnvHost
} else {
delete process.env['PGHOST']
}
if (envPortDefined) {
process.env['PGPORT'] = savedEnvPort
} else {
delete process.env['PGPORT']
}
})
})
test('calls connect correctly on connection', function () {
var client = new Client('/tmp')
var usedPort = ''
var usedHost = ''
client.connection.connect = function (port, host) {
usedPort = port
usedHost = host
}
client.connect()
assert.equal(usedPort, '/tmp/.s.PGSQL.' + pgport)
assert.strictEqual(usedHost, undefined)
})