Skip to content

Commit

Permalink
Split up query tests
Browse files Browse the repository at this point in the history
  • Loading branch information
felixge committed Nov 26, 2011
1 parent baed417 commit ec2f89c
Show file tree
Hide file tree
Showing 6 changed files with 139 additions and 129 deletions.
14 changes: 14 additions & 0 deletions test/integration/Query/results/test-empty-string.js
@@ -0,0 +1,14 @@
var common = require('../../../common');
var assert = require('assert');

var client = common.createClient();
var results;
client.query('SELECT "" as field_a', function(err, _results) {
if (err) throw err;
results = _results;
client.destroy();
});

process.on('exit', function() {
assert.strictEqual(results[0].field_a, "");
});
43 changes: 43 additions & 0 deletions test/integration/Query/results/test-long-fields.js
@@ -0,0 +1,43 @@
var common = require('../../../common');
var assert = require('assert');

var client = common.createClient();
var field_a = makeString(250);
var field_b = makeString(251);
var field_c = makeString(512);
var field_d = makeString(65537);
var callbacks = 0;

// We execute this test twice to be sure the parser is in a good state after
// each run.
test();
test(true);

function test(last) {
var sql = 'SELECT ? as field_a, ? as field_b, ? as field_c, ? as field_d';
var params = [field_a, field_b, field_c, field_d];

var query = client.query(sql, params, function(err, results) {
if (err) throw err;

assert.equal(results[0].field_a, field_a);
assert.equal(results[0].field_b, field_b);
assert.equal(results[0].field_c, field_c);
assert.equal(results[0].field_d, field_d);

callbacks++;
if (last) client.destroy();
});
}

function makeString(length) {
var str = '';
for (var i = 0; i < length; i++) {
str += 'x';
}
return str;

}
process.on('exit', function() {
assert.equal(callbacks, 2);
});
15 changes: 15 additions & 0 deletions test/integration/Query/results/test-null-value.js
@@ -0,0 +1,15 @@
var common = require('../../../common');
var assert = require('assert');

var client = common.createClient();
var results;
client.query('SELECT NULL as field_a, NULL as field_b', function(err, _results) {
if (err) throw err;
results = _results;
client.destroy();
});

process.on('exit', function() {
assert.strictEqual(results[0].field_a, null);
assert.strictEqual(results[0].field_b, null);
});
51 changes: 51 additions & 0 deletions test/integration/Query/results/test-real-world-usage.js
@@ -0,0 +1,51 @@
var common = require('../../../common');
var assert = require('assert');
var mysql = require(common.dir.root);

var client = common.createClient();
client.query('CREATE DATABASE '+common.TEST_DB, function createDbCb(err) {
if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) done(err);
});

client.query('USE '+common.TEST_DB);

client.query(
'CREATE TEMPORARY TABLE ' + common.TEST_TABLE+
'(id INT(11) AUTO_INCREMENT, title VARCHAR(255), text TEXT, created DATETIME, PRIMARY KEY (id));'
);

client.query(
'INSERT INTO ' + common.TEST_TABLE + ' '+
'SET title = ?, text = ?, created = ?',
['super cool', 'this is a nice long text', '2010-08-16 10:00:23']
);

var query = client.query(
'INSERT INTO '+common.TEST_TABLE+' '+
'SET title = ?, text = ?, created = ?',
['another entry', 'because 2 entries make a better test', null]
);

var endCalled = false;
query.on('end', function insertOkCb(packet) {
endCalled = true;
});

var lastQueryReached = false;
var query = client.query('SELECT * FROM '+common.TEST_TABLE, function selectCb(err, results, fields) {
assert.ok(endCalled);

lastQueryReached = true;

assert.equal(results.length, 2);
assert.equal(results[1].title, 'another entry');
assert.ok(typeof results[1].id == 'number');
assert.ok(results[0].created instanceof Date);
assert.strictEqual(results[1].created, null);

client.destroy();
});

process.on('exit', function() {
assert.ok(lastQueryReached);
});
16 changes: 16 additions & 0 deletions test/integration/Query/results/test-virtual-fields.js
@@ -0,0 +1,16 @@
var common = require('../../../common');
var assert = require('assert');

var client = common.createClient();
var results;
client.query('SELECT 1 as field_a, 2 as field_b', function(err, _results) {
if (err) throw err;

results = _results;
client.destroy();
});

process.on('exit', function() {
assert.equal(results[0].field_a, 1);
assert.equal(results[0].field_b, 2);
});
129 changes: 0 additions & 129 deletions test/integration/test-client-query.js

This file was deleted.

0 comments on commit ec2f89c

Please sign in to comment.