Remove promise-interop from native query

This commit is contained in:
Brian M. Carlson 2017-06-13 11:43:15 -05:00 committed by Brian C
parent 55c3b3691c
commit bc2f550402
5 changed files with 20 additions and 85 deletions

View File

@ -119,9 +119,14 @@ Client.prototype.query = function(config, values, callback) {
}
var query = new NativeQuery(config, values, callback);
var result = query.callback ? query : new global.Promise(function(resolve, reject) {
query.on('end', resolve);
query.on('error', reject);
});
this._queryQueue.push(query);
this._pulseQueryQueue();
return query;
return result;
};
//disconnect from the backend server

View File

@ -34,23 +34,6 @@ var NativeQuery = module.exports = function(config, values, callback) {
util.inherits(NativeQuery, EventEmitter);
NativeQuery.prototype.then = function(onSuccess, onFailure) {
return this.promise().then(onSuccess, onFailure);
};
NativeQuery.prototype.catch = function(callback) {
return this.promise().catch(callback);
};
NativeQuery.prototype.promise = function() {
if (this._promise) return this._promise;
this._promise = new Promise(function(resolve, reject) {
this.once('end', resolve);
this.once('error', reject);
}.bind(this));
return this._promise;
};
var errorFieldMap = {
'sqlState': 'code',
'statementPosition': 'position',

View File

@ -1,34 +1,6 @@
var helper = require(__dirname + "/../test-helper");
var Client = require(__dirname + "/../../lib/native");
test('query with non-text as first parameter throws error', function() {
var client = new Client(helper.config);
client.connect();
assert.emits(client, 'connect', function() {
client.end();
assert.emits(client, 'end', function() {
assert.throws(function() {
client.query({text:{fail: true}});
});
});
});
});
test('parameterized query with non-text as first parameter throws error', function() {
var client = new Client(helper.config);
client.connect();
assert.emits(client, 'connect', function() {
client.end();
assert.emits(client, 'end', function() {
assert.throws(function() {
client.query({
text: {fail: true},
values: [1, 2]
})
});
});
});
});
var connect = function(callback) {
var client = new Client(helper.config);

View File

@ -1,5 +1,6 @@
var helper = require(__dirname + "/../test-helper");
var Client = require(__dirname + "/../../lib/native");
var helper = require("../test-helper");
var Client = require("../../lib/native");
var Query = Client.Query;
var setupClient = function() {
var client = new Client(helper.config);
@ -10,37 +11,10 @@ var setupClient = function() {
return client;
}
//test('connects', function() {
//var client = new Client(helper.config);
//client.connect();
//test('good query', function() {
//var query = client.query("SELECT 1 as num, 'HELLO' as str");
//assert.emits(query, 'row', function(row) {
//test('has integer data type', function() {
//assert.strictEqual(row.num, 1);
//})
//test('has string data type', function() {
//assert.strictEqual(row.str, "HELLO")
//})
//test('emits end AFTER row event', function() {
//assert.emits(query, 'end');
//test('error query', function() {
//var query = client.query("LSKDJF");
//assert.emits(query, 'error', function(err) {
//assert.ok(err != null, "Should not have emitted null error");
//client.end();
//})
//})
//})
//})
//})
//})
test('multiple results', function() {
test('queued queries', function() {
var client = setupClient();
var q = client.query("SELECT name FROM BOOM");
var q = client.query(new Query("SELECT name FROM BOOM"));
assert.emits(q, 'row', function(row) {
assert.equal(row.name, 'Aaron');
assert.emits(q, 'row', function(row) {
@ -49,7 +23,7 @@ test('multiple results', function() {
})
assert.emits(q, 'end', function() {
test('query with config', function() {
var q2 = client.query({text:'SELECT 1 as num'});
var q2 = client.query(new Query({text:'SELECT 1 as num'}));
assert.emits(q2, 'row', function(row) {
assert.strictEqual(row.num, 1);
assert.emits(q2, 'end', function() {
@ -64,7 +38,7 @@ test('multiple results', function() {
test('parameterized queries', function() {
test('with a single string param', function() {
var client = setupClient();
var q = client.query("SELECT * FROM boom WHERE name = $1", ['Aaron']);
var q = client.query(new Query("SELECT * FROM boom WHERE name = $1", ['Aaron']));
assert.emits(q, 'row', function(row) {
assert.equal(row.name, 'Aaron');
})
@ -75,10 +49,10 @@ test('parameterized queries', function() {
test('with object config for query', function() {
var client = setupClient();
var q = client.query({
var q = client.query(new Query({
text: "SELECT name FROM boom WHERE name = $1",
values: ['Brian']
});
}));
assert.emits(q, 'row', function(row) {
assert.equal(row.name, 'Brian');
})
@ -89,7 +63,7 @@ test('parameterized queries', function() {
test('multiple parameters', function() {
var client = setupClient();
var q = client.query('SELECT name FROM boom WHERE name = $1 or name = $2 ORDER BY name', ['Aaron', 'Brian']);
var q = client.query(new Query('SELECT name FROM boom WHERE name = $1 or name = $2 ORDER BY name', ['Aaron', 'Brian']));
assert.emits(q, 'row', function(row) {
assert.equal(row.name, 'Aaron');
assert.emits(q, 'row', function(row) {
@ -100,10 +74,10 @@ test('parameterized queries', function() {
})
})
})
test('integer parameters', function() {
var client = setupClient();
var q = client.query('SELECT * FROM boom WHERE age > $1', [27]);
var q = client.query(new Query('SELECT * FROM boom WHERE age > $1', [27]));
assert.emits(q, 'row', function(row) {
assert.equal(row.name, 'Brian');
assert.equal(row.age, 28);

View File

@ -1,10 +1,11 @@
var helper = require(__dirname + "/../test-helper");
var Client = require(__dirname + "/../../lib/native");
var Query = Client.Query;
test('many rows', function() {
var client = new Client(helper.config);
client.connect();
var q = client.query("SELECT * FROM person");
var q = client.query(new Query("SELECT * FROM person"));
var rows = [];
q.on('row', function(row) {
rows.push(row)
@ -21,7 +22,7 @@ test('many queries', function() {
var count = 0;
var expected = 100;
for(var i = 0; i < expected; i++) {
var q = client.query("SELECT * FROM person");
var q = client.query(new Query("SELECT * FROM person"));
assert.emits(q, 'end', function() {
count++;
});