27 lines
1 KiB
JavaScript
27 lines
1 KiB
JavaScript
var sqlite3 = require('..');
|
|
var assert = require('assert');
|
|
|
|
describe('query properties', function() {
|
|
var db;
|
|
before(function(done) {
|
|
db = new sqlite3.Database(':memory:');
|
|
db.run("CREATE TABLE foo (id INT PRIMARY KEY, count INT)", done);
|
|
});
|
|
|
|
(sqlite3.VERSION_NUMBER < 3024000 ? it.skip : it)('should upsert', function(done) {
|
|
var stmt = db.prepare("INSERT INTO foo VALUES(?, ?)");
|
|
stmt.run(1, 1, function(err) { // insert 1
|
|
if (err) throw err;
|
|
var upsert_stmt = db.prepare("INSERT INTO foo VALUES(?, ?) ON CONFLICT (id) DO UPDATE SET count = count + excluded.count");
|
|
upsert_stmt.run(1, 2, function(err) { // add 2
|
|
if (err) throw err;
|
|
var select_stmt = db.prepare("SELECT count FROM foo WHERE id = ?");
|
|
select_stmt.get(1, function(err, row) {
|
|
if (err) throw err;
|
|
assert.equal(row.count, 3); // equals 3
|
|
});
|
|
});
|
|
});
|
|
db.wait(done);
|
|
});
|
|
});
|