@@ -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