1. 1var sqlite3 = require('..');
2. 1var assert = require('assert');
3. 1
4. 1describe('scheduling', function() {
5. 1 it('scheduling after the database was closed', function(done) {
6. 1 var db = new sqlite3.Database(':memory:');
7. 1 db.on('error', function(err) {
8. 1 assert.ok(err.message && err.message.indexOf("SQLITE_MISUSE: Database handle is closed") > -1);
9. 1 done();
10. 1 });
11. 1
12. 1 db.close();
13. 1 db.run("CREATE TABLE foo (id int)");
14. 1 });
15. 1
16. 1
17. 1 it('scheduling a query with callback after the database was closed', function(done) {
18. 1 var db = new sqlite3.Database(':memory:');
19. 0 db.on('error', function(err) {
20. 0 assert.ok(false, 'Event was accidentally triggered');
21. 0 });
22. 1
23. 1 db.close();
24. 1 db.run("CREATE TABLE foo (id int)", function(err) {
25. 1 assert.ok(err.message && err.message.indexOf("SQLITE_MISUSE: Database handle is closed") > -1);
26. 1 done();
27. 1 });
28. 1 });
29. 1
30. 1 it('running a query after the database was closed', function(done) {
31. 1 var db = new sqlite3.Database(':memory:');
32. 1
33. 1 var stmt = db.prepare("SELECT * FROM sqlite_master", function(err) {
34. 0 if (err) throw err;
35. 1 db.close(function(err) {
36. 1 assert.ok(err);
37. 1 assert.ok(err.message && err.message.indexOf("SQLITE_BUSY: unable to close due to") > -1);
38. 1
39. 1 // Running a statement now should not fail.
40. 1 stmt.run(done);
41. 1 });
42. 1 });
43. 1 });
44. 1});
45. 1