1. 1var sqlite3 = require('..');
2. 1var assert = require('assert');
3. 1
4. 1describe('profiling', function() {
5. 1 var create = false;
6. 1 var select = false;
7. 1
8. 1 var db;
9. 1 before(function(done) {
10. 1 db = new sqlite3.Database(':memory:', done);
11. 1
12. 2 db.on('profile', function(sql, nsecs) {
13. 2 assert.ok(typeof nsecs === "number");
14. 1 if (sql.match(/^SELECT/)) {
15. 1 assert.ok(!select);
16. 1 assert.equal(sql, "SELECT * FROM foo");
17. 1 console.log('profile select');
18. 1 select = true;
19. 1 }
20. 1 else if (sql.match(/^CREATE/)) {
21. 1 assert.ok(!create);
22. 1 assert.equal(sql, "CREATE TABLE foo (id int)");
23. 1 create = true;
24. 0 }
25. 0 else {
26. 0 assert.ok(false);
27. 0 }
28. 2 });
29. 1 });
30. 1
31. 1 it('should profile a create table', function(done) {
32. 1 assert.ok(!create);
33. 1 db.run("CREATE TABLE foo (id int)", function(err) {
34. 0 if (err) throw err;
35. 1 setImmediate(function() {
36. 1 assert.ok(create);
37. 1 done();
38. 1 });
39. 1 });
40. 1 });
41. 1
42. 1
43. 1 it('should profile a select', function(done) {
44. 1 assert.ok(!select);
45. 1 db.run("SELECT * FROM foo", function(err) {
46. 0 if (err) throw err;
47. 1 setImmediate(function() {
48. 1 assert.ok(select);
49. 1 done();
50. 1 }, 0);
51. 1 });
52. 1 });
53. 1
54. 1 after(function(done) {
55. 1 db.close(done);
56. 1 });
57. 1});
58. 1