node-query/node_modules/mysql2/test/integration/connection/test-nested-tables-query.js

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);
});