forked from TryGhost/node-sqlite3
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpatching.test.js
More file actions
74 lines (67 loc) · 2.89 KB
/
Copy pathpatching.test.js
File metadata and controls
74 lines (67 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
var sqlite3 = require('..');
var assert = require('assert');
describe('patching', function() {
var db;
var originalFunctions = {};
before(function() {
originalFunctions.close = sqlite3.Database.prototype.close;
originalFunctions.exec = sqlite3.Database.prototype.exec;
originalFunctions.wait = sqlite3.Database.prototype.wait;
originalFunctions.loadExtension = sqlite3.Database.prototype.loadExtension;
originalFunctions.serialize = sqlite3.Database.prototype.serialize;
originalFunctions.parallelize = sqlite3.Database.prototype.parallelize;
originalFunctions.configure = sqlite3.Database.prototype.configure;
originalFunctions.interrupt = sqlite3.Database.prototype.interrupt;
});
it('allow patching native functions', function() {
var myFun = function myFunction() {
return "Success";
}
assert.doesNotThrow(() => {
sqlite3.Database.prototype.close = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.exec = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.wait = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.loadExtension = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.serialize = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.parallelize = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.configure = myFun;
});
assert.doesNotThrow(() => {
sqlite3.Database.prototype.interrupt = myFun;
});
db = new sqlite3.Database(':memory:');
assert.strictEqual(db.close(), "Success");
assert.strictEqual(db.exec(), "Success");
assert.strictEqual(db.wait(), "Success");
assert.strictEqual(db.loadExtension(), "Success");
assert.strictEqual(db.serialize(), "Success");
assert.strictEqual(db.parallelize(), "Success");
assert.strictEqual(db.configure(), "Success");
assert.strictEqual(db.interrupt(), "Success");
});
after(function() {
if(db != null) {
sqlite3.Database.prototype.close = originalFunctions.close;
sqlite3.Database.prototype.exec = originalFunctions.exec;
sqlite3.Database.prototype.wait = originalFunctions.wait;
sqlite3.Database.prototype.loadExtension = originalFunctions.loadExtension;
sqlite3.Database.prototype.serialize = originalFunctions.serialize;
sqlite3.Database.prototype.parallelize = originalFunctions.parallelize;
sqlite3.Database.prototype.configure = originalFunctions.configure;
sqlite3.Database.prototype.interrupt = originalFunctions.interrupt;
db.close();
}
});
});