57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
var sqlite3 = require('..');
|
|
var assert = require('assert');
|
|
|
|
describe('profiling', function() {
|
|
var create = false;
|
|
var select = false;
|
|
|
|
var db;
|
|
before(function(done) {
|
|
db = new sqlite3.Database(':memory:', done);
|
|
|
|
db.on('profile', function(sql, nsecs) {
|
|
assert.ok(typeof nsecs === "number");
|
|
if (sql.match(/^SELECT/)) {
|
|
assert.ok(!select);
|
|
assert.equal(sql, "SELECT * FROM foo");
|
|
console.log('profile select');
|
|
select = true;
|
|
}
|
|
else if (sql.match(/^CREATE/)) {
|
|
assert.ok(!create);
|
|
assert.equal(sql, "CREATE TABLE foo (id int)");
|
|
create = true;
|
|
}
|
|
else {
|
|
assert.ok(false);
|
|
}
|
|
});
|
|
});
|
|
|
|
it('should profile a create table', function(done) {
|
|
assert.ok(!create);
|
|
db.run("CREATE TABLE foo (id int)", function(err) {
|
|
if (err) throw err;
|
|
setImmediate(function() {
|
|
assert.ok(create);
|
|
done();
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
it('should profile a select', function(done) {
|
|
assert.ok(!select);
|
|
db.run("SELECT * FROM foo", function(err) {
|
|
if (err) throw err;
|
|
setImmediate(function() {
|
|
assert.ok(select);
|
|
done();
|
|
}, 0);
|
|
});
|
|
});
|
|
|
|
after(function(done) {
|
|
db.close(done);
|
|
});
|
|
});
|