Commit d8e7c186 by Orlando Vazquez

Pull out some common test code

parent a93e643c
...@@ -38,3 +38,25 @@ exports.insertMany = function (db, table, fields, rows, callback) { ...@@ -38,3 +38,25 @@ exports.insertMany = function (db, table, fields, rows, callback) {
doStep(--i); doStep(--i);
}); });
} }
exports.getResultsStep = function (db, callback) {
var results = [];
db.prepare('SELECT * FROM table1', function (error, statement) {
function doStep() {
statement.step(function (error, row) {
if (row) {
results.push(row);
doStep();
}
else {
statement.finalize(function () {
callback && callback(results);
});
}
});
}
doStep();
});
}
...@@ -43,52 +43,19 @@ var tests = [ ...@@ -43,52 +43,19 @@ var tests = [
var self = this; var self = this;
self.db.open(':memory:', function (error) { self.db.open(':memory:', function (error) {
function selectStatementPrepared(error, statement) {
if (error) throw error;
statement.fetchAll(function (error, rows) {
if (error) throw error;
assert.deepEqual(testRowsExpected, rows);
self.db.close(function () {
finished();
});
});
}
createTestTable(self.db, createTestTable(self.db,
function () { function () {
function insertRows(db, rows, callback) { common.insertMany(self.db
var i = rows.length; , 'table1'
db.prepare('INSERT INTO table1 (id, name, age) VALUES (?, ?, ?)', , ['id', 'name', 'age']
function (error, statement) { , testRows
function doStep(i) { , function () {
statement.bindArray(rows[i], function () { common.getResultsStep(self.db, function (rows) {
statement.step(function (error, row) { console.log(sys.inspect(arguments));
if (error) throw error; assert.deepEqual(rows, testRowsExpected);
assert.ok(!row, "Row should be unset"); finished();
statement.reset();
if (i) {
doStep(--i);
}
else {
statement.finalize(function () {
callback();
});
}
});
});
}
doStep(--i);
}); });
}
var selectSQL
= 'SELECT * from table1';
common.insertMany(self.db, 'table1', ['id', 'name', 'age'], testRows, function () {
self.db.prepare(selectSQL, selectStatementPrepared);
}); });
}); });
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment