You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.3 KiB
65 lines
1.3 KiB
var common = require('../../common');
|
|
var connection = common.createConnection();
|
|
var assert = require('assert');
|
|
|
|
common.useTestDb(connection);
|
|
|
|
var table = 'stream_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'));
|
|
|
|
var rowCount = 10;
|
|
for (var i = 1; i <= rowCount; i++) {
|
|
var row = {
|
|
id: i,
|
|
title: 'Row #' + i,
|
|
};
|
|
|
|
connection.query('INSERT INTO ' + table + ' SET ?', row);
|
|
}
|
|
|
|
var paused = false;
|
|
var query = connection.query('SELECT * FROM ' + table);
|
|
|
|
var hadEnd = 0;
|
|
var rows = [];
|
|
var fields = undefined;
|
|
query
|
|
.on('fields', function(_fields, index) {
|
|
assert.equal(index, 0);
|
|
assert.ok(!fields);
|
|
|
|
fields = _fields;
|
|
})
|
|
.on('result', function(row) {
|
|
// Make sure we never receive a row while being paused
|
|
assert.equal(paused, false);
|
|
|
|
paused = true;
|
|
connection.pause();
|
|
|
|
setTimeout(function() {
|
|
paused = false;
|
|
connection.resume();
|
|
|
|
rows.push(row);
|
|
}, 10);
|
|
})
|
|
.on('end', function() {
|
|
hadEnd = true;
|
|
});
|
|
|
|
connection.end();
|
|
|
|
process.on('exit', function() {
|
|
assert.equal(rows.length, 10);
|
|
assert.equal(hadEnd, true);
|
|
|
|
assert.equal(fields[0].name, 'id');
|
|
assert.equal(fields[1].name, 'title');
|
|
});
|