V8 Coverage Report
Files covered Lines
. / test/upsert.test.js
85.71 %
24 / 28
    1.      1var sqlite3 = require('..');
    2.      1var assert = require('assert');
    3.      1
    4.      1describe('query properties', function() {
    5.      1    var db;
    6.      1    before(function(done) {
    7.      1        db = new sqlite3.Database(':memory:');
    8.      1        db.run("CREATE TABLE foo (id INT PRIMARY KEY, count INT)", done);
    9.      1    });
   10.      1
   11.      0    (sqlite3.VERSION_NUMBER < 3024000 ? it.skip : it)('should upsert', function(done) {
   12.      1        var stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
   13.      1        stmt.run(1, 1, function(err) { // insert 1
   14.      0            if (err) throw err;
   15.      1            var upsert_stmt = db.prepare("INSERT INTO foo VALUES(?, ?) ON CONFLICT (id) DO UPDATE SET count = count + excluded.count");
   16.      1            upsert_stmt.run(1, 2, function(err) { // add 2
   17.      0                if (err) throw err;
   18.      1                var select_stmt = db.prepare("SELECT count FROM foo WHERE id = ?");
   19.      1                select_stmt.get(1, function(err, row) {
   20.      0                    if (err) throw err;
   21.      1                    assert.equal(row.count, 3); // equals 3
   22.      1                });
   23.      1            })
   24.      1        });
   25.      1        db.wait(done);
   26.      1    });
   27.      1});
   28.      1