Skip to content

Commit abd1c3f

Browse files
committed
finished transaction.bind tests
1 parent 89c9f94 commit abd1c3f

File tree

1 file changed

+99
-61
lines changed

1 file changed

+99
-61
lines changed

test/30.transaction.run.js

Lines changed: 99 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -85,65 +85,103 @@ describe('Transaction#run()', function () {
8585
var trans = db.transaction(["DROP TABLE people"]);
8686
expect(trans.run().changes).to.equal(2);
8787
});
88-
// it('should accept bind parameters', function () {
89-
// db.transaction("CREATE TABLE entries (a TEXT CHECK(typeof(a)=='text'), b INTEGER CHECK(typeof(b)=='integer' OR typeof(b)=='real'), c REAL CHECK(typeof(c)=='real' OR typeof(c)=='integer'), d BLOB CHECK(typeof(d)=='blob'))").run();
90-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', 25, 25, Buffer.alloc(8).fill(0xdd));
91-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run(['foo', 25, 25, Buffer.alloc(8).fill(0xdd)]);
92-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run(['foo', 25], [25], Buffer.alloc(8).fill(0xdd));
93-
// db.transaction('INSERT INTO entries VALUES (@a, @b, @c, @d)').run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
94-
// db.transaction('INSERT INTO entries VALUES ($a, $b, $c, $d)').run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
95-
// db.transaction('INSERT INTO entries VALUES (:a, :b, :c, :d)').run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
96-
// db.transaction('INSERT INTO entries VALUES (?, @a, @a, ?)').run({a: 25}, ['foo'], Buffer.alloc(8).fill(0xdd));
97-
// expect(function () {
98-
// db.transaction('INSERT INTO entries VALUES (?, @a, @a, ?)').run({a: 25}, ['foo'], Buffer.alloc(8).fill(0xdd), Buffer.alloc(8).fill(0xdd));
99-
// }).to.throw(Error);
100-
// expect(function () {
101-
// db.transaction('INSERT INTO entries VALUES (?, @a, @a, ?)').run({a: 25}, ['foo']);
102-
// }).to.throw(Error);
103-
// expect(function () {
104-
// db.transaction('INSERT INTO entries VALUES (?, @a, @a, ?)').run({a: 25, c: 25}, ['foo'], Buffer.alloc(8).fill(0xdd));
105-
// }).to.throw(Error);
106-
// expect(function () {
107-
// db.transaction('INSERT INTO entries VALUES (?, @a, @a, ?)').run({}, ['foo'], Buffer.alloc(8).fill(0xdd));
108-
// }).to.throw(Error);
109-
// expect(function () {
110-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run(25, 'foo', 25, Buffer.alloc(8).fill(0xdd));
111-
// }).to.throw(Error);
112-
// expect(function () {
113-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', 25, 25, Buffer.alloc(8).fill(0xdd), {foo: 'foo'});
114-
// }).to.throw(Error);
115-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', 25, 25, Buffer.alloc(8).fill(0xdd), {});
116-
// expect(function () {
117-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', 25, 25, {4: Buffer.alloc(8).fill(0xdd)});
118-
// }).to.throw(Error);
119-
// expect(function () {
120-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run();
121-
// }).to.throw(Error);
122-
// expect(function () {
123-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run({length: 4, 0: 'foo', 1: 25, 2: 25, 3: Buffer.alloc(8).fill(0xdd)});
124-
// }).to.throw(Error);
125-
// expect(function () {
126-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', 25, new Number(25), Buffer.alloc(8).fill(0xdd));
127-
// }).to.throw(Error);
128-
// expect(function () {
129-
// db.transaction('INSERT INTO entries VALUES (?, ?, ?, ?)').run('foo', {low: 25, high: 25}, 25, Buffer.alloc(8).fill(0xdd));
130-
// }).to.throw(Error);
131-
// function Foo() {
132-
// this.a = 'foo';
133-
// this.b = 25;
134-
// this.c = 25;
135-
// this.d = Buffer.alloc(8).fill(0xdd);
136-
// }
137-
// expect(function () {
138-
// db.transaction('INSERT INTO entries VALUES (@a, @b, @c, @d)').run(new Foo);
139-
// }).to.throw(Error);
140-
141-
// // This part of the test may fail is Statement#get() does not work.
142-
// var i = 0;
143-
// var row;
144-
// while (row = db.transaction('SELECT * FROM entries WHERE rowid=' + ++i).get()) {
145-
// expect(row).to.deep.equal({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)})
146-
// }
147-
// expect(i).to.equal(9);
148-
// });
88+
it('should accept bind parameters', function () {
89+
db.transaction(["CREATE TABLE entries (a TEXT CHECK(typeof(a)=='text'), b INTEGER CHECK(typeof(b)=='integer' OR typeof(b)=='real'), c REAL CHECK(typeof(c)=='real' OR typeof(c)=='integer'), d BLOB CHECK(typeof(d)=='blob'))"]).run();
90+
91+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
92+
.run('foo', 25, 25, Buffer.alloc(8).fill(0xdd), 'foo', 25, 25, Buffer.alloc(8).fill(0xdd));
93+
94+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
95+
.run(['foo', 25, 25, Buffer.alloc(8).fill(0xdd), 'foo', 25, 25, Buffer.alloc(8).fill(0xdd)]);
96+
97+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
98+
.run(['foo', 25], [25], Buffer.alloc(8).fill(0xdd), ['foo', 25, 25, Buffer.alloc(8).fill(0xdd)]);
99+
100+
db.transaction(['INSERT INTO entries VALUES (@a, @b, @c, @d)', 'INSERT INTO entries VALUES (@a, @b, @c, @d)'])
101+
.run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
102+
103+
db.transaction(['INSERT INTO entries VALUES ($a, $b, $c, $d)', 'INSERT INTO entries VALUES ($a, $b, $c, $d)'])
104+
.run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
105+
106+
db.transaction(['INSERT INTO entries VALUES (:a, :b, :c, :d)', 'INSERT INTO entries VALUES (:a, :b, :c, :d)'])
107+
.run({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)});
108+
109+
db.transaction(['INSERT INTO entries VALUES (?, @a, @a, ?)', 'INSERT INTO entries VALUES (?, @a, @a, ?)'])
110+
.run({a: 25}, ['foo'], [Buffer.alloc(8).fill(0xdd), 'foo'], Buffer.alloc(8).fill(0xdd));
111+
112+
expect(function () {
113+
db.transaction(['INSERT INTO entries VALUES (?, @a, @a, ?)', 'INSERT INTO entries VALUES (?, @a, @a, ?)'])
114+
.run({a: 25}, ['foo'], Buffer.alloc(8).fill(0xdd), 'foo', Buffer.alloc(8).fill(0xdd), Buffer.alloc(8).fill(0xdd));
115+
}).to.throw(Error);
116+
117+
expect(function () {
118+
db.transaction(['INSERT INTO entries VALUES (?, @a, @a, ?)', 'INSERT INTO entries VALUES (?, @a, @a, ?)'])
119+
.run({a: 25}, ['foo'], Buffer.alloc(8).fill(0xdd), 'foo');
120+
}).to.throw(Error);
121+
122+
expect(function () {
123+
db.transaction(['INSERT INTO entries VALUES (?, @a, @a, ?)', 'INSERT INTO entries VALUES (?, @a, @a, ?)'])
124+
.run({a: 25, c: 25}, ['foo'], Buffer.alloc(8).fill(0xdd), ['foo'], Buffer.alloc(8).fill(0xdd));
125+
}).to.throw(Error);
126+
127+
expect(function () {
128+
db.transaction(['INSERT INTO entries VALUES (?, @a, @a, ?)'])
129+
.run({}, ['foo'], Buffer.alloc(8).fill(0xdd), ['foo'], Buffer.alloc(8).fill(0xdd));
130+
}).to.throw(Error);
131+
132+
expect(function () {
133+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
134+
.run(25, 'foo', 25, Buffer.alloc(8).fill(0xdd), 'foo', 25, 25, Buffer.alloc(8).fill(0xdd));
135+
}).to.throw(Error);
136+
137+
expect(function () {
138+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
139+
.run('foo', 25, 25, Buffer.alloc(8).fill(0xdd), 'foo', 25, 25, Buffer.alloc(8).fill(0xdd), {foo: 'foo'});
140+
}).to.throw(Error);
141+
142+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)', 'INSERT INTO entries VALUES (?, ?, ?, ?)'])
143+
.run('foo', 25, 25, Buffer.alloc(8).fill(0xdd), 'foo', 25, 25, Buffer.alloc(8).fill(0xdd), {});
144+
145+
expect(function () {
146+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)'])
147+
.run('foo', 25, 25, {4: Buffer.alloc(8).fill(0xdd)});
148+
}).to.throw(Error);
149+
150+
expect(function () {
151+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)'])
152+
.run();
153+
}).to.throw(Error);
154+
155+
expect(function () {
156+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)'])
157+
.run({length: 4, 0: 'foo', 1: 25, 2: 25, 3: Buffer.alloc(8).fill(0xdd)});
158+
}).to.throw(Error);
159+
160+
expect(function () {
161+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)'])
162+
.run('foo', 25, new Number(25), Buffer.alloc(8).fill(0xdd));
163+
}).to.throw(Error);
164+
165+
expect(function () {
166+
db.transaction(['INSERT INTO entries VALUES (?, ?, ?, ?)'])
167+
.run('foo', {low: 25, high: 25}, 25, Buffer.alloc(8).fill(0xdd));
168+
}).to.throw(Error);
169+
170+
function Foo() {
171+
this.a = 'foo';
172+
this.b = 25;
173+
this.c = 25;
174+
this.d = Buffer.alloc(8).fill(0xdd);
175+
}
176+
expect(function () {
177+
db.transaction(['INSERT INTO entries VALUES (@a, @b, @c, @d)', 'INSERT INTO entries VALUES (@a, @b, @c, @d)']).run(new Foo);
178+
}).to.throw(Error);
179+
180+
var i = 0;
181+
var row;
182+
while (row = db.prepare('SELECT * FROM entries WHERE rowid=' + ++i).get()) {
183+
expect(row).to.deep.equal({a: 'foo', b: 25, c: 25, d: Buffer.alloc(8).fill(0xdd)})
184+
}
185+
expect(i).to.equal(17);
186+
});
149187
});

0 commit comments

Comments
 (0)