1. 1var sqlite3 = require('..');
2. 1var assert = require('assert');
3. 1
4. 1describe('data types', function() {
5. 1 var db;
6. 1 before(function(done) {
7. 1 db = new sqlite3.Database(':memory:');
8. 1 db.run("CREATE TABLE txt_table (txt TEXT)");
9. 1 db.run("CREATE TABLE int_table (int INTEGER)");
10. 1 db.run("CREATE TABLE flt_table (flt FLOAT)");
11. 1 db.wait(done);
12. 1 });
13. 1
14. 22 beforeEach(function(done) {
15. 22 db.exec('DELETE FROM txt_table; DELETE FROM int_table; DELETE FROM flt_table;', done);
16. 22 });
17. 1
18. 1 it('should serialize Date()', function(done) {
19. 1 var date = new Date();
20. 1 db.run("INSERT INTO int_table VALUES(?)", date, function (err) {
21. 0 if (err) throw err;
22. 1 db.get("SELECT int FROM int_table", function(err, row) {
23. 0 if (err) throw err;
24. 1 assert.equal(row.int, +date);
25. 1 done();
26. 1 });
27. 1 });
28. 1 });
29. 1
30. 1 it('should serialize RegExp()', function(done) {
31. 1 var regexp = /^f\noo/;
32. 1 db.run("INSERT INTO txt_table VALUES(?)", regexp, function (err) {
33. 0 if (err) throw err;
34. 1 db.get("SELECT txt FROM txt_table", function(err, row) {
35. 0 if (err) throw err;
36. 1 assert.equal(row.txt, String(regexp));
37. 1 done();
38. 1 });
39. 1 });
40. 1 });
41. 1
42. 1 [
43. 1 4294967296.249,
44. 1 Math.PI,
45. 1 3924729304762836.5,
46. 1 new Date().valueOf(),
47. 1 912667.394828365,
48. 1 2.3948728634826374e+83,
49. 1 9.293476892934982e+300,
50. 1 Infinity,
51. 1 -9.293476892934982e+300,
52. 1 -2.3948728634826374e+83,
53. 1 -Infinity
54. 11 ].forEach(function(flt) {
55. 11 it('should serialize float ' + flt, function(done) {
56. 11 db.run("INSERT INTO flt_table VALUES(?)", flt, function (err) {
57. 0 if (err) throw err;
58. 11 db.get("SELECT flt FROM flt_table", function(err, row) {
59. 0 if (err) throw err;
60. 11 assert.equal(row.flt, flt);
61. 11 done();
62. 11 });
63. 11 });
64. 11 });
65. 11 });
66. 1
67. 1 [
68. 1 4294967299,
69. 1 3924729304762836,
70. 1 new Date().valueOf(),
71. 1 2.3948728634826374e+83,
72. 1 9.293476892934982e+300,
73. 1 Infinity,
74. 1 -9.293476892934982e+300,
75. 1 -2.3948728634826374e+83,
76. 1 -Infinity
77. 9 ].forEach(function(integer) {
78. 9 it('should serialize integer ' + integer, function(done) {
79. 9 db.run("INSERT INTO int_table VALUES(?)", integer, function (err) {
80. 0 if (err) throw err;
81. 9 db.get("SELECT int AS integer FROM int_table", function(err, row) {
82. 0 if (err) throw err;
83. 9 assert.equal(row.integer, integer);
84. 9 done();
85. 9 });
86. 9 });
87. 9 });
88. 9 });
89. 1});
90. 1