67 lines
1.7 KiB
JavaScript
67 lines
1.7 KiB
JavaScript
var sqlite3 = require('..');
|
|
var assert = require('assert');
|
|
|
|
describe('tracing', function() {
|
|
it('Database tracing', function(done) {
|
|
var db = new sqlite3.Database(':memory:');
|
|
var create = false;
|
|
var select = false;
|
|
|
|
db.on('trace', function(sql) {
|
|
if (sql.match(/^SELECT/)) {
|
|
assert.ok(!select);
|
|
assert.equal(sql, "SELECT * FROM foo");
|
|
select = true;
|
|
}
|
|
else if (sql.match(/^CREATE/)) {
|
|
assert.ok(!create);
|
|
assert.equal(sql, "CREATE TABLE foo (id int)");
|
|
create = true;
|
|
}
|
|
else {
|
|
assert.ok(false);
|
|
}
|
|
});
|
|
|
|
db.serialize(function() {
|
|
db.run("CREATE TABLE foo (id int)");
|
|
db.run("SELECT * FROM foo");
|
|
});
|
|
|
|
db.close(function(err) {
|
|
if (err) throw err;
|
|
assert.ok(create);
|
|
assert.ok(select);
|
|
done();
|
|
});
|
|
});
|
|
|
|
|
|
it('test disabling tracing #1', function(done) {
|
|
var db = new sqlite3.Database(':memory:');
|
|
|
|
db.on('trace', function(sql) {});
|
|
db.removeAllListeners('trace');
|
|
db._events['trace'] = function(sql) {
|
|
assert.ok(false);
|
|
};
|
|
|
|
db.run("CREATE TABLE foo (id int)");
|
|
db.close(done);
|
|
});
|
|
|
|
|
|
it('test disabling tracing #2', function(done) {
|
|
var db = new sqlite3.Database(':memory:');
|
|
|
|
var trace = function(sql) {};
|
|
db.on('trace', trace);
|
|
db.removeListener('trace', trace);
|
|
db._events['trace'] = function(sql) {
|
|
assert.ok(false);
|
|
};
|
|
|
|
db.run("CREATE TABLE foo (id int)");
|
|
db.close(done);
|
|
});
|
|
});
|