A Twitch.tv viewer reward and games system.
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

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