Skip to content

Commit 732e720

Browse files
committed
Merge pull request #608 from gurjeet/misc_unit_test_improvements
Miscellaneous improvements in unit tests.
2 parents c4f9141 + ef40b6f commit 732e720

7 files changed

+103
-34
lines changed

test/unit/client/cleartext-password-tests.js

+5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
require(__dirname+'/test-helper');
22

3+
/*
4+
* TODO: Add _some_ comments to explain what it is we're testing, and how the
5+
* code-being-tested works behind the scenes.
6+
*/
7+
38
test('cleartext password authentication', function(){
49

510
var client = createClient();

test/unit/client/configuration-tests.js

+77-22
Original file line numberDiff line numberDiff line change
@@ -36,33 +36,88 @@ test('initializing from a config string', function() {
3636

3737
test('uses the correct values from the config string', function() {
3838
var client = new Client("postgres://brian:pass@host1:333/databasename")
39-
assert.equal(client.user, 'brian')
40-
assert.equal(client.password, "pass")
41-
assert.equal(client.host, "host1")
42-
assert.equal(client.port, 333)
43-
assert.equal(client.database, "databasename")
44-
})
39+
assert.equal(client.user, 'brian');
40+
assert.equal(client.password, "pass");
41+
assert.equal(client.host, "host1");
42+
assert.equal(client.port, 333);
43+
assert.equal(client.database, "databasename");
44+
});
4545

4646
test('uses the correct values from the config string with space in password', function() {
4747
var client = new Client("postgres://brian:pass word@host1:333/databasename")
48-
assert.equal(client.user, 'brian')
49-
assert.equal(client.password, "pass word")
50-
assert.equal(client.host, "host1")
51-
assert.equal(client.port, 333)
52-
assert.equal(client.database, "databasename")
53-
})
48+
assert.equal(client.user, 'brian');
49+
assert.equal(client.password, "pass word");
50+
assert.equal(client.host, "host1");
51+
assert.equal(client.port, 333);
52+
assert.equal(client.database, "databasename");
53+
});
5454

5555
test('when not including all values the defaults are used', function() {
56-
var client = new Client("postgres://host1")
57-
assert.equal(client.user, process.env['PGUSER'] || process.env.USER)
58-
assert.equal(client.password, process.env['PGPASSWORD'] || null)
59-
assert.equal(client.host, "host1")
60-
assert.equal(client.port, process.env['PGPORT'] || 5432)
61-
assert.equal(client.database, process.env['PGDATABASE'] || process.env.USER)
62-
})
56+
var client = new Client("postgres://host1");
57+
assert.equal(client.user, process.env['PGUSER'] || process.env.USER);
58+
assert.equal(client.password, process.env['PGPASSWORD'] || null);
59+
assert.equal(client.host, "host1");
60+
assert.equal(client.port, process.env['PGPORT'] || 5432);
61+
assert.equal(client.database, process.env['PGDATABASE'] || process.env.USER);
62+
});
63+
64+
test('when not including all values the environment variables are used', function() {
65+
var envUserDefined = process.env['PGUSER'] !== undefined;
66+
var envPasswordDefined = process.env['PGPASSWORD'] !== undefined;
67+
var envDBDefined = process.env['PGDATABASE'] !== undefined;
68+
var envHostDefined = process.env['PGHOST'] !== undefined;
69+
var envPortDefined = process.env['PGPORT'] !== undefined;
70+
71+
var savedEnvUser = process.env['PGUSER'];
72+
var savedEnvPassword = process.env['PGPASSWORD'];
73+
var savedEnvDB = process.env['PGDATABASE'];
74+
var savedEnvHost = process.env['PGHOST'];
75+
var savedEnvPort = process.env['PGPORT'];
76+
77+
process.env['PGUSER'] = 'utUser1';
78+
process.env['PGPASSWORD'] = 'utPass1';
79+
process.env['PGDATABASE'] = 'utDB1';
80+
process.env['PGHOST'] = 'utHost1';
81+
process.env['PGPORT'] = 5464;
82+
83+
var client = new Client("postgres://host1");
84+
assert.equal(client.user, process.env['PGUSER']);
85+
assert.equal(client.password, process.env['PGPASSWORD']);
86+
assert.equal(client.host, "host1");
87+
assert.equal(client.port, process.env['PGPORT']);
88+
assert.equal(client.database, process.env['PGDATABASE']);
6389

90+
if (envUserDefined) {
91+
process.env['PGUSER'] = savedEnvUser;
92+
} else {
93+
delete process.env['PGUSER'];
94+
}
6495

65-
})
96+
if (envPasswordDefined) {
97+
process.env['PGPASSWORD'] = savedEnvPassword;
98+
} else {
99+
delete process.env['PGPASSWORD'];
100+
}
101+
102+
if (envDBDefined) {
103+
process.env['PGDATABASE'] = savedEnvDB;
104+
} else {
105+
delete process.env['PGDATABASE'];
106+
}
107+
108+
if (envHostDefined) {
109+
process.env['PGHOST'] = savedEnvHost;
110+
} else {
111+
delete process.env['PGHOST'];
112+
}
113+
114+
if (envPortDefined) {
115+
process.env['PGPORT'] = savedEnvPort;
116+
} else {
117+
delete process.env['PGPORT'];
118+
}
119+
});
120+
});
66121

67122
test('calls connect correctly on connection', function() {
68123
var client = new Client("/tmp");
@@ -74,6 +129,6 @@ test('calls connect correctly on connection', function() {
74129
};
75130
client.connect();
76131
assert.equal(usedPort, "/tmp/.s.PGSQL." + pgport);
77-
assert.strictEqual(usedHost, undefined)
78-
})
132+
assert.strictEqual(usedHost, undefined);
133+
});
79134

+12-6
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,27 @@
11
require(__dirname + '/test-helper');
22

3+
/*
4+
* Perhaps duplicate of test named 'initializing from a config string' in
5+
* configuration-tests.js
6+
*/
7+
38
test("using connection string in client constructor", function() {
49
var client = new Client("postgres://brian:pw@boom:381/lala");
10+
511
test("parses user", function() {
612
assert.equal(client.user,'brian');
7-
})
13+
});
814
test("parses password", function() {
915
assert.equal(client.password, 'pw');
10-
})
16+
});
1117
test("parses host", function() {
1218
assert.equal(client.host, 'boom');
13-
})
19+
});
1420
test('parses port', function() {
1521
assert.equal(client.port, 381)
16-
})
22+
});
1723
test('parses database', function() {
1824
assert.equal(client.database, 'lala')
19-
})
20-
})
25+
});
26+
});
2127

test/unit/client/early-disconnect-tests.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
var helper = require(__dirname + '/test-helper');
22
var net = require('net');
33
var pg = require('../../..//lib/index.js');
4-
4+
5+
/* console.log() messages show up in `make test` output. TODO: fix it. */
56
var server = net.createServer(function(c) {
67
console.log('server connected');
78
c.destroy();
@@ -18,5 +19,5 @@ server.listen(7777, function() {
1819
else console.log('client connected');
1920
assert(err);
2021
}));
21-
22+
2223
});

test/unit/client/md5-password-tests.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
require(__dirname + '/test-helper')
1+
require(__dirname + '/test-helper');
2+
23
test('md5 authentication', function() {
34
var client = createClient();
45
client.password = "!";
@@ -13,7 +14,7 @@ test('md5 authentication', function() {
1314
var password = "md5" + encrypted
1415
//how do we want to test this?
1516
assert.equalBuffers(client.connection.stream.packets[0], new BufferList()
16-
.addCString(password).join(true,'p'))
17+
.addCString(password).join(true,'p'));
1718
});
1819
});
1920

test/unit/client/notification-tests.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
var helper = require(__dirname + "/test-helper");
2+
23
test('passes connection notification', function() {
34
var client = helper.client();
45
assert.emits(client, 'notice', function(msg) {

test/unit/client/prepared-statement-tests.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ test('bound command', function() {
5050
assert.ok(client.connection.emit('readyForQuery'));
5151

5252
var query = client.query({
53-
text: 'select * where name = $1',
53+
text: 'select * from X where name = $1',
5454
values: ['hi']
5555
});
5656

5757
assert.emits(query,'end', function() {
5858
test('parse argument', function() {
5959
assert.equal(parseArg.name, null);
60-
assert.equal(parseArg.text, 'select * where name = $1');
60+
assert.equal(parseArg.text, 'select * from X where name = $1');
6161
assert.equal(parseArg.types, null);
6262
});
6363

0 commit comments

Comments
 (0)