mirror of
https://github.com/brianc/node-postgres.git
synced 2025-12-08 20:16:25 +00:00
Replaces __dirname concatentation in pg test scripts so that editors like VS Code can automatically generate typings and support code navigation (F12).
169 lines
5.1 KiB
JavaScript
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)
|
|
})
|