f2b87e02f1
* Remove redundant tests * Add client connectionString test Add test to ensure { connectionString } is respected as an argument to the client constructor * Add test for connection string property Also fixed some legacy require statements.
171 lines
5.1 KiB
JavaScript
171 lines
5.1 KiB
JavaScript
require(__dirname+'/test-helper');
|
|
|
|
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);
|
|
});
|
|
|