87 lines
1.8 KiB
JavaScript
87 lines
1.8 KiB
JavaScript
var common = require('../../common');
|
|
var connection = common.createConnection();
|
|
var assert = require('assert');
|
|
|
|
common.useTestDb(connection);
|
|
|
|
var table = 'nested_test';
|
|
connection.query([
|
|
'CREATE TEMPORARY TABLE `' + table + '` (',
|
|
'`id` int(11) unsigned NOT NULL AUTO_INCREMENT,',
|
|
'`title` varchar(255),',
|
|
'PRIMARY KEY (`id`)',
|
|
') ENGINE=InnoDB DEFAULT CHARSET=utf8'
|
|
].join('\n'));
|
|
|
|
connection.query('INSERT INTO ' + table + ' SET ?', {title: 'test'});
|
|
|
|
var options1 = {
|
|
nestTables: true,
|
|
sql: 'SELECT * FROM ' + table
|
|
};
|
|
var options2 = {
|
|
nestTables: '_',
|
|
sql: 'SELECT * FROM ' + table
|
|
};
|
|
var options3 = {
|
|
rowsAsArray: true,
|
|
sql: 'SELECT * FROM ' + table
|
|
};
|
|
var rows1, rows2, rows3, rows1e, rows2e, rows3e;
|
|
|
|
connection.query(options1, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows1 = _rows;
|
|
});
|
|
|
|
connection.query(options2, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows2 = _rows;
|
|
});
|
|
|
|
connection.query(options3, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows3 = _rows;
|
|
});
|
|
|
|
connection.execute(options1, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows1e = _rows;
|
|
});
|
|
|
|
connection.execute(options2, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows2e = _rows;
|
|
});
|
|
|
|
connection.execute(options3, function(err, _rows) {
|
|
if (err) throw err;
|
|
|
|
rows3e = _rows;
|
|
});
|
|
|
|
connection.end();
|
|
|
|
process.on('exit', function() {
|
|
assert.equal(rows1.length, 1);
|
|
assert.equal(rows1[0].nested_test.id, 1);
|
|
assert.equal(rows1[0].nested_test.title, 'test');
|
|
|
|
assert.equal(rows2.length, 1);
|
|
assert.equal(rows2[0].nested_test_id, 1);
|
|
assert.equal(rows2[0].nested_test_title, 'test');
|
|
|
|
assert.equal(Array.isArray(rows3[0]), true);
|
|
assert.equal(rows3[0][0], 1);
|
|
assert.equal(rows3[0][1], 'test');
|
|
|
|
assert.deepEqual(rows1, rows1e);
|
|
assert.deepEqual(rows2, rows2e);
|
|
assert.deepEqual(rows3, rows3e);
|
|
});
|