50 lines
1.5 KiB
JavaScript
50 lines
1.5 KiB
JavaScript
var sqlite3 = require('..');
|
|
var assert = require('assert');
|
|
|
|
describe('rerunning statements', function() {
|
|
var db;
|
|
before(function(done) { db = new sqlite3.Database(':memory:', done); });
|
|
|
|
var count = 10;
|
|
var inserted = 0;
|
|
var retrieved = 0;
|
|
|
|
it('should create the table', function(done) {
|
|
db.run("CREATE TABLE foo (id int)", done);
|
|
});
|
|
|
|
it('should insert repeatedly, reusing the same statement', function(done) {
|
|
var stmt = db.prepare("INSERT INTO foo VALUES(?)");
|
|
for (var i = 5; i < count; i++) {
|
|
stmt.run(i, function(err) {
|
|
if (err) throw err;
|
|
inserted++;
|
|
});
|
|
}
|
|
stmt.finalize(done);
|
|
});
|
|
|
|
it('should retrieve repeatedly, resuing the same statement', function(done) {
|
|
var collected = [];
|
|
var stmt = db.prepare("SELECT id FROM foo WHERE id = ?");
|
|
for (var i = 0; i < count; i++) {
|
|
stmt.get(i, function(err, row) {
|
|
if (err) throw err;
|
|
if (row) collected.push(row);
|
|
});
|
|
}
|
|
stmt.finalize(function(err) {
|
|
if (err) throw err;
|
|
retrieved += collected.length;
|
|
assert.deepEqual(collected, [ { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 } ]);
|
|
done();
|
|
});
|
|
});
|
|
|
|
it('should have inserted and retrieved the right amount', function() {
|
|
assert.equal(inserted, 5);
|
|
assert.equal(retrieved, 5);
|
|
});
|
|
|
|
after(function(done) { db.close(done); });
|
|
});
|