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.
 
 
 

55 lines
1.3 KiB

var common = require('../../common');
var connection = common.createConnection();
var assert = require('assert');
common.useTestDb(connection);
var table = 'load_data_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 path = common.fixtures + '/data.csv';
var sql =
'LOAD DATA LOCAL INFILE ? INTO TABLE ' + table + ' ' +
'FIELDS TERMINATED BY ? (id, title)';
var ok;
connection.query(sql, [path, ','], function(err, _ok) {
if (err) throw err;
ok = _ok;
});
var rows;
connection.query('SELECT * FROM ' + table, function(err, _rows) {
if (err) throw err;
rows = _rows;
});
// Try to load a file that does not exist to see if we handle this properly
var loadErr;
var loadResult;
var badPath = common.fixtures + '/does_not_exist.csv';
connection.query(sql, [badPath, ','], function(err, result) {
loadErr = err;
loadResult = result;
});
connection.end();
process.on('exit', function() {
assert.equal(ok.affectedRows, 3);
assert.equal(rows.length, 3);
assert.equal(rows[0].id, 1);
assert.equal(rows[0].title, 'Hello World');
assert.equal(loadErr.code, 'ENOENT');
assert.equal(loadResult.affectedRows, 0);
});