@@ -119,25 +119,6 @@ describe('Transaction', function() {
119
119
} ) ;
120
120
} ) ;
121
121
122
- describe ( 'createQuery' , function ( ) {
123
- it ( 'should return query from datastore.createQuery' , function ( ) {
124
- var args = [ 0 , 1 , 2 , 3 ] ;
125
- var createQueryReturnValue = { } ;
126
-
127
- transaction . datastore . createQuery = function ( ) {
128
- assert . strictEqual ( this , transaction ) ;
129
- assert . strictEqual ( arguments [ 0 ] , args [ 0 ] ) ;
130
- assert . strictEqual ( arguments [ 1 ] , args [ 1 ] ) ;
131
- assert . strictEqual ( arguments [ 2 ] , args [ 2 ] ) ;
132
- assert . strictEqual ( arguments [ 3 ] , args [ 3 ] ) ;
133
- return createQueryReturnValue ;
134
- } ;
135
-
136
- var query = transaction . createQuery . apply ( transaction , args ) ;
137
- assert . strictEqual ( query , createQueryReturnValue ) ;
138
- } ) ;
139
- } ) ;
140
-
141
122
describe ( 'commit' , function ( ) {
142
123
beforeEach ( function ( ) {
143
124
transaction . id = TRANSACTION_ID ;
@@ -165,9 +146,12 @@ describe('Transaction', function() {
165
146
var error = new Error ( 'Error.' ) ;
166
147
var apiResponse = { } ;
167
148
149
+ var rollbackError = new Error ( 'Error.' ) ;
150
+ var rollbackApiResponse = { } ;
151
+
168
152
beforeEach ( function ( ) {
169
153
transaction . rollback = function ( callback ) {
170
- callback ( ) ;
154
+ callback ( rollbackError , rollbackApiResponse ) ;
171
155
} ;
172
156
173
157
transaction . request_ = function ( protoOpts , reqOpts , callback ) {
@@ -176,7 +160,7 @@ describe('Transaction', function() {
176
160
} ;
177
161
} ) ;
178
162
179
- it ( 'should pass the error to the callback' , function ( done ) {
163
+ it ( 'should pass the commit error to the callback' , function ( done ) {
180
164
transaction . commit ( function ( err , resp ) {
181
165
assert . strictEqual ( err , error ) ;
182
166
assert . strictEqual ( resp , apiResponse ) ;
@@ -314,6 +298,25 @@ describe('Transaction', function() {
314
298
} ) ;
315
299
} ) ;
316
300
301
+ describe ( 'createQuery' , function ( ) {
302
+ it ( 'should return query from datastore.createQuery' , function ( ) {
303
+ var args = [ 0 , 1 , 2 , 3 ] ;
304
+ var createQueryReturnValue = { } ;
305
+
306
+ transaction . datastore . createQuery = function ( ) {
307
+ assert . strictEqual ( this , transaction ) ;
308
+ assert . strictEqual ( arguments [ 0 ] , args [ 0 ] ) ;
309
+ assert . strictEqual ( arguments [ 1 ] , args [ 1 ] ) ;
310
+ assert . strictEqual ( arguments [ 2 ] , args [ 2 ] ) ;
311
+ assert . strictEqual ( arguments [ 3 ] , args [ 3 ] ) ;
312
+ return createQueryReturnValue ;
313
+ } ;
314
+
315
+ var query = transaction . createQuery . apply ( transaction , args ) ;
316
+ assert . strictEqual ( query , createQueryReturnValue ) ;
317
+ } ) ;
318
+ } ) ;
319
+
317
320
describe ( 'delete' , function ( ) {
318
321
it ( 'should push entities into a queue' , function ( ) {
319
322
var keys = [
@@ -397,51 +400,67 @@ describe('Transaction', function() {
397
400
} ) ;
398
401
399
402
describe ( 'run' , function ( ) {
400
- it ( 'should begin' , function ( done ) {
401
- transaction . request_ = function ( protoOpts , reqOpts , callback ) {
402
- callback = callback || reqOpts ;
403
- assert . strictEqual ( protoOpts . service , 'Datastore' ) ;
404
- assert . equal ( protoOpts . method , 'beginTransaction' ) ;
403
+ it ( 'should make the correct API request' , function ( done ) {
404
+ transaction . request_ = function ( protoOpts ) {
405
+ assert . deepEqual ( protoOpts , {
406
+ service : 'Datastore' ,
407
+ method : 'beginTransaction'
408
+ } ) ;
409
+
405
410
done ( ) ;
406
411
} ;
407
412
408
- transaction . run ( ) ;
413
+ transaction . run ( assert . ifError ) ;
409
414
} ) ;
410
415
411
- it ( 'should set transaction id' , function ( done ) {
412
- transaction . request_ = function ( protoOpts , reqOpts , callback ) {
413
- callback = callback || reqOpts ;
414
- callback ( null , { transaction : TRANSACTION_ID } ) ;
415
- } ;
416
- transaction . run ( function ( err ) {
417
- assert . ifError ( err ) ;
418
- assert . equal ( transaction . id , TRANSACTION_ID ) ;
419
- done ( ) ;
416
+ describe ( 'error' , function ( ) {
417
+ var error = new Error ( 'Error.' ) ;
418
+ var apiResponse = { } ;
419
+
420
+ beforeEach ( function ( ) {
421
+ transaction . request_ = function ( protoOpts , callback ) {
422
+ callback ( error , apiResponse ) ;
423
+ } ;
420
424
} ) ;
421
- } ) ;
422
425
423
- it ( 'should pass error to callback' , function ( done ) {
424
- var error = new Error ( 'Error.' ) ;
425
- transaction . request_ = function ( protoOpts , reqOpts , callback ) {
426
- callback = callback || reqOpts ;
427
- callback ( error ) ;
428
- } ;
429
- transaction . run ( function ( err ) {
430
- assert . deepEqual ( err , error ) ;
431
- done ( ) ;
426
+ it ( 'should pass error & API response to callback' , function ( done ) {
427
+ transaction . run ( function ( err , transaction , apiResponse_ ) {
428
+ assert . strictEqual ( err , error ) ;
429
+ assert . strictEqual ( transaction , null ) ;
430
+ assert . strictEqual ( apiResponse_ , apiResponse ) ;
431
+ done ( ) ;
432
+ } ) ;
432
433
} ) ;
433
434
} ) ;
434
435
435
- it ( 'should pass apiResponse to callback' , function ( done ) {
436
- var resp = { success : true } ;
437
- transaction . request_ = function ( protoOpts , reqOpts , callback ) {
438
- callback = callback || reqOpts ;
439
- callback ( null , resp ) ;
436
+ describe ( 'success' , function ( ) {
437
+ var apiResponse = {
438
+ transaction : TRANSACTION_ID
440
439
} ;
441
- transaction . run ( function ( err , apiResponse ) {
442
- assert . ifError ( err ) ;
443
- assert . deepEqual ( resp , apiResponse ) ;
444
- done ( ) ;
440
+
441
+ beforeEach ( function ( ) {
442
+ transaction . request_ = function ( protoOpts , callback ) {
443
+ callback ( null , apiResponse ) ;
444
+ } ;
445
+ } ) ;
446
+
447
+ it ( 'should set transaction id' , function ( done ) {
448
+ delete transaction . id ;
449
+
450
+ transaction . run ( function ( err ) {
451
+ assert . ifError ( err ) ;
452
+ assert . equal ( transaction . id , TRANSACTION_ID ) ;
453
+ done ( ) ;
454
+ } ) ;
455
+ } ) ;
456
+
457
+ it ( 'should exec callback with Transaction & apiResponse' , function ( done ) {
458
+ transaction . run ( function ( err , transaction_ , apiResponse_ ) {
459
+ assert . ifError ( err ) ;
460
+ assert . strictEqual ( transaction_ , transaction ) ;
461
+ assert . deepEqual ( apiResponse_ , apiResponse ) ;
462
+ done ( ) ;
463
+ } ) ;
445
464
} ) ;
446
465
} ) ;
447
466
} ) ;
0 commit comments