node-postgres/test/unit/client/result-metadata-tests.js
Gurjeet Singh ef40b6f3e9 Re-add the test for SELECT tag; I was wrong in my assumption.
Postgres generally does not emit a SELECT tag after a SELECT query, but
it does emit that tag after a CREATE TABLE x AS SELECT query.

Example:

postgres=# create table t as select 1;
SELECT 1
2014-06-22 08:19:26 -04:00

40 lines
1.1 KiB
JavaScript

var helper = require(__dirname + "/test-helper")
var testForTag = function(tagText, callback) {
test('includes command tag data for tag ' + tagText, function() {
var client = helper.client();
client.connection.emit('readyForQuery')
var query = client.query("whatever");
assert.lengthIs(client.connection.queries, 1)
assert.emits(query, 'end', function(result) {
assert.ok(result != null, "should pass something to this event")
callback(result)
})
client.connection.emit('commandComplete', {
text: tagText
});
client.connection.emit('readyForQuery');
})
}
var check = function(oid, rowCount, command) {
return function(result) {
if(oid != null) {
assert.equal(result.oid, oid);
}
assert.equal(result.rowCount, rowCount);
assert.equal(result.command, command);
}
}
testForTag("INSERT 0 3", check(0, 3, "INSERT"));
testForTag("INSERT 841 1", check(841, 1, "INSERT"));
testForTag("DELETE 10", check(null, 10, "DELETE"));
testForTag("UPDATE 11", check(null, 11, "UPDATE"));
testForTag("SELECT 20", check(null, 20, "SELECT"));