V8 Coverage Report
Files covered Lines
. / test/rerun.test.js
94.11 %
48 / 51
    1.      1var sqlite3 = require('..');
    2.      1var assert = require('assert');
    3.      1
    4.      1describe('rerunning statements', function() {
    5.      1    var db;
    6.      1    before(function(done) { db = new sqlite3.Database(':memory:', done); });
    7.      1
    8.      1    var count = 10;
    9.      1    var inserted = 0;
   10.      1    var retrieved = 0;
   11.      1
   12.      1    it('should create the table', function(done) {
   13.      1        db.run("CREATE TABLE foo (id int)", done);
   14.      1    });
   15.      1
   16.      1    it('should insert repeatedly, reusing the same statement', function(done) {
   17.      1        var stmt = db.prepare("INSERT INTO foo VALUES(?)");
   18.      5        for (var i = 5; i < count; i++) {
   19.      5            stmt.run(i, function(err) {
   20.      0                if (err) throw err;
   21.      5                inserted++;
   22.      5            });
   23.      5        }
   24.      1        stmt.finalize(done);
   25.      1    });
   26.      1
   27.      1    it('should retrieve repeatedly, resuing the same statement', function(done) {
   28.      1        var collected = [];
   29.      1        var stmt = db.prepare("SELECT id FROM foo WHERE id = ?");
   30.     10        for (var i = 0; i < count; i++) {
   31.     10            stmt.get(i, function(err, row) {
   32.      0                if (err) throw err;
   33.     10                if (row) collected.push(row);
   34.     10            });
   35.     10        }
   36.      1        stmt.finalize(function(err) {
   37.      0            if (err) throw err;
   38.      1            retrieved += collected.length;
   39.      1            assert.deepEqual(collected, [ { id: 5 }, { id: 6 }, { id: 7 }, { id: 8 }, { id: 9 } ]);
   40.      1            done();
   41.      1        });
   42.      1    });
   43.      1
   44.      1    it('should have inserted and retrieved the right amount', function() {
   45.      1        assert.equal(inserted, 5);
   46.      1        assert.equal(retrieved, 5);
   47.      1    });
   48.      1
   49.      1    after(function(done) { db.close(done); });
   50.      1});
   51.      1