@@ -30,14 +30,14 @@ function getSample () {
30
30
31
31
var jobMock = {
32
32
id : jobId ,
33
- getQueryResults : sinon . stub ( ) . callsArgWith ( 0 , null , natalityMock ) ,
34
- getMetadata : sinon . stub ( ) . callsArgWith ( 0 , null , metadataMock )
33
+ getQueryResults : sinon . stub ( ) . yields ( null , natalityMock ) ,
34
+ getMetadata : sinon . stub ( ) . yields ( null , metadataMock )
35
35
} ;
36
36
37
37
var bigqueryMock = {
38
38
job : sinon . stub ( ) . returns ( jobMock ) ,
39
- startQuery : sinon . stub ( ) . callsArgWith ( 1 , null , jobMock ) ,
40
- query : sinon . stub ( ) . callsArgWith ( 1 , null , natalityMock )
39
+ startQuery : sinon . stub ( ) . yields ( null , jobMock ) ,
40
+ query : sinon . stub ( ) . yields ( null , natalityMock )
41
41
} ;
42
42
43
43
var BigQueryMock = sinon . stub ( ) . returns ( bigqueryMock ) ;
@@ -67,35 +67,38 @@ describe('bigquery:query', function () {
67
67
68
68
example . program . syncQuery ( query , callback ) ;
69
69
70
- assert . ifError ( callback . firstCall . args [ 0 ] ) ;
71
- assert ( example . mocks . bigquery . query . called ) ;
72
- assert . deepEqual ( callback . firstCall . args [ 1 ] , example . mocks . natality ) ;
73
- assert ( console . log . calledWith (
74
- 'SyncQuery: found %d rows!' ,
75
- callback . firstCall . args [ 1 ] . length
76
- ) ) ;
70
+ assert . equal ( example . mocks . bigquery . query . calledOnce , true ) ;
71
+ assert . deepEqual ( example . mocks . bigquery . query . firstCall . args . slice ( 0 , - 1 ) , [ {
72
+ query : query ,
73
+ timeoutMs : 10000
74
+ } ] ) ;
75
+ assert . equal ( callback . calledOnce , true ) ;
76
+ assert . deepEqual ( callback . firstCall . args , [ null , example . mocks . natality ] ) ;
77
+ assert . equal ( console . log . calledOnce , true ) ;
78
+ assert . deepEqual ( console . log . firstCall . args , [ 'SyncQuery: found %d rows!' , example . mocks . natality . length ] ) ;
77
79
} ) ;
78
80
79
81
it ( 'should require a query' , function ( ) {
82
+ var error = new Error ( '"query" is required!' ) ;
80
83
var example = getSample ( ) ;
81
84
var callback = sinon . stub ( ) ;
82
85
83
86
example . program . syncQuery ( null , callback ) ;
84
87
85
- assert . deepEqual ( callback . firstCall . args [ 0 ] , new Error ( '"query" is required!' ) ) ;
86
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
88
+ assert . equal ( callback . calledOnce , true ) ;
89
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
87
90
} ) ;
88
91
89
92
it ( 'should handle error' , function ( ) {
90
93
var error = new Error ( 'error' ) ;
91
94
var example = getSample ( ) ;
92
95
var callback = sinon . stub ( ) ;
93
- example . mocks . bigquery . query = sinon . stub ( ) . callsArgWith ( 1 , error ) ;
96
+ example . mocks . bigquery . query . yields ( error ) ;
94
97
95
98
example . program . syncQuery ( query , callback ) ;
96
99
97
- assert . deepEqual ( callback . firstCall . args [ 0 ] , error ) ;
98
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
100
+ assert . equal ( callback . calledOnce , true ) ;
101
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
99
102
} ) ;
100
103
} ) ;
101
104
@@ -108,115 +111,108 @@ describe('bigquery:query', function () {
108
111
109
112
example . program . asyncQuery ( query , callback ) ;
110
113
111
- assert . ifError ( callback . firstCall . args [ 0 ] ) ;
112
- assert ( example . mocks . bigquery . startQuery . called ) ;
113
- assert . deepEqual ( callback . firstCall . args [ 1 ] , example . mocks . job ) ;
114
- assert ( console . log . calledWith (
115
- 'AsyncQuery: submitted job %s!' , example . jobId
116
- ) ) ;
114
+ assert . equal ( example . mocks . bigquery . startQuery . calledOnce , true ) ;
115
+ assert . deepEqual ( example . mocks . bigquery . startQuery . firstCall . args . slice ( 0 , - 1 ) , [ {
116
+ query : query
117
+ } ] ) ;
118
+ assert . equal ( callback . calledOnce , true ) ;
119
+ assert . deepEqual ( callback . firstCall . args , [ null , example . mocks . job ] ) ;
120
+ assert . equal ( console . log . calledOnce , true ) ;
121
+ assert . deepEqual ( console . log . firstCall . args , [ 'AsyncQuery: submitted job %s!' , example . jobId ] ) ;
117
122
} ) ;
118
123
119
124
it ( 'should require a query' , function ( ) {
125
+ var error = new Error ( '"query" is required!' ) ;
120
126
var example = getSample ( ) ;
121
127
var callback = sinon . stub ( ) ;
122
128
123
129
example . program . asyncQuery ( null , callback ) ;
124
130
125
- assert . deepEqual ( callback . firstCall . args [ 0 ] , new Error ( '"query" is required!' ) ) ;
126
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
131
+ assert . equal ( callback . calledOnce , true ) ;
132
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
127
133
} ) ;
128
134
129
135
it ( 'should handle error' , function ( ) {
130
136
var error = new Error ( 'error' ) ;
131
137
var example = getSample ( ) ;
132
138
var callback = sinon . stub ( ) ;
133
- example . mocks . bigquery . startQuery = sinon . stub ( ) . callsArgWith ( 1 , error ) ;
139
+ example . mocks . bigquery . startQuery . yields ( error ) ;
134
140
135
141
example . program . asyncQuery ( query , callback ) ;
136
142
137
- assert . deepEqual ( callback . firstCall . args [ 0 ] , error ) ;
138
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
143
+ assert . equal ( callback . calledOnce , true ) ;
144
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
139
145
} ) ;
140
146
} ) ;
141
147
142
148
describe ( 'asyncPoll' , function ( ) {
143
149
it ( 'should get the results of a job given its ID' , function ( ) {
144
150
var example = getSample ( ) ;
145
151
var callback = sinon . stub ( ) ;
146
- example . mocks . bigquery . job = sinon . stub ( ) . returns ( example . mocks . job ) ;
152
+ example . mocks . bigquery . job . returns ( example . mocks . job ) ;
147
153
148
154
example . program . asyncPoll ( example . jobId , callback ) ;
149
155
150
- assert . ifError ( callback . firstCall . args [ 0 ] ) ;
151
- assert ( example . mocks . job . getQueryResults . called ) ;
152
- assert ( console . log . calledWith (
153
- 'AsyncQuery: polled job %s; got %d rows!' ,
154
- example . jobId ,
155
- example . mocks . natality . length
156
- ) ) ;
156
+ assert . equal ( example . mocks . job . getMetadata . calledOnce , true ) ;
157
+ assert . deepEqual ( example . mocks . job . getMetadata . firstCall . args . slice ( 0 , - 1 ) , [ ] ) ;
158
+ assert . equal ( example . mocks . job . getQueryResults . calledOnce , true ) ;
159
+ assert . deepEqual ( example . mocks . job . getQueryResults . firstCall . args . slice ( 0 , - 1 ) , [ ] ) ;
160
+ assert . equal ( callback . calledOnce , true ) ;
161
+ assert . deepEqual ( callback . firstCall . args , [ null , example . mocks . natality ] ) ;
162
+ assert . equal ( console . log . calledTwice , true ) ;
163
+ assert . deepEqual ( console . log . firstCall . args , [ 'Job status: %s' , example . mocks . metadata . status . state ] ) ;
164
+ assert . deepEqual ( console . log . secondCall . args , [ 'AsyncQuery: polled job %s; got %d rows!' , example . jobId , example . mocks . natality . length ] ) ;
157
165
} ) ;
158
166
159
- it ( 'should report the status of a job ' , function ( ) {
167
+ it ( 'should error when job is not finished ' , function ( ) {
160
168
var example = getSample ( ) ;
161
169
var callback = sinon . stub ( ) ;
162
170
171
+ var pendingState = { status : { state : 'PENDING' } } ;
172
+ example . mocks . job . getMetadata . yields ( null , pendingState ) ;
173
+
163
174
example . program . asyncPoll ( example . jobId , callback ) ;
164
175
165
- assert . ifError ( callback . firstCall . args [ 0 ] ) ;
166
- assert ( example . mocks . job . getMetadata . called ) ;
167
- assert ( console . log . calledWith (
168
- 'Job status: %s' ,
169
- example . mocks . metadata . status . state
170
- ) ) ;
176
+ assert . equal ( example . mocks . job . getMetadata . calledOnce , true ) ;
177
+ assert . deepEqual ( example . mocks . job . getMetadata . firstCall . args . slice ( 0 , - 1 ) , [ ] ) ;
178
+ assert . equal ( callback . calledOnce , true ) ;
179
+ assert . deepEqual ( callback . firstCall . args , [ new Error ( 'Job %s is not done' , example . jobId ) ] ) ;
180
+ assert . equal ( console . log . calledOnce , true ) ;
181
+ assert . deepEqual ( console . log . firstCall . args , [ 'Job status: %s' , pendingState . status . state ] ) ;
171
182
} ) ;
172
183
173
- it ( 'should check whether a job is finished ' , function ( ) {
184
+ it ( 'should require a job ID ' , function ( ) {
174
185
var example = getSample ( ) ;
175
186
var callback = sinon . stub ( ) ;
176
187
177
- var pendingState = { status : { state : 'PENDING' } } ;
178
- example . mocks . job . getMetadata = sinon . stub ( ) . callsArgWith ( 0 , null , pendingState ) ;
179
-
180
- example . program . asyncPoll ( example . jobId , callback ) ;
188
+ example . program . asyncPoll ( null , callback ) ;
181
189
182
- assert . deepEqual ( callback . firstCall . args [ 0 ] , Error ( 'Job %s is not done' , example . jobId ) ) ;
183
- assert ( console . log . calledWith ( 'Job status: %s' , pendingState . status . state ) ) ;
184
- assert ( example . mocks . job . getMetadata . called ) ;
185
- assert . equal ( example . mocks . job . getQueryResults . called , false ) ;
190
+ assert . deepEqual ( callback . firstCall . args [ 0 ] , Error ( '"jobId" is required!' ) ) ;
186
191
assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
187
-
188
- var doneState = { status : { state : 'DONE' } } ;
189
- example . mocks . job . getMetadata = sinon . stub ( ) . callsArgWith ( 0 , null , doneState ) ;
190
-
191
- example . program . asyncPoll ( example . jobId , callback ) ;
192
-
193
- assert . ifError ( callback . secondCall . args [ 0 ] ) ;
194
- assert ( console . log . calledWith ( 'Job status: %s' , doneState . status . state ) ) ;
195
- assert ( example . mocks . job . getMetadata . called ) ;
196
- assert ( example . mocks . job . getQueryResults . called ) ;
197
- assert . equal ( callback . secondCall . args [ 1 ] , example . mocks . natality ) ;
198
192
} ) ;
199
193
200
- it ( 'should require a job ID' , function ( ) {
194
+ it ( 'should handle getMetadata error' , function ( ) {
195
+ var error = new Error ( 'error' ) ;
201
196
var example = getSample ( ) ;
202
197
var callback = sinon . stub ( ) ;
198
+ example . mocks . job . getMetadata . yields ( error ) ;
203
199
204
- example . program . asyncPoll ( null , callback ) ;
200
+ example . program . asyncPoll ( example . jobId , callback ) ;
205
201
206
- assert . deepEqual ( callback . firstCall . args [ 0 ] , Error ( '"jobId" is required!' ) ) ;
207
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
202
+ assert . equal ( callback . calledOnce , true ) ;
203
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
208
204
} ) ;
209
205
210
206
it ( 'should handle error' , function ( ) {
211
207
var error = new Error ( 'error' ) ;
212
208
var example = getSample ( ) ;
213
209
var callback = sinon . stub ( ) ;
214
- example . mocks . job . getQueryResults = sinon . stub ( ) . callsArgWith ( 0 , error ) ;
210
+ example . mocks . job . getQueryResults . yields ( error ) ;
215
211
216
212
example . program . asyncPoll ( example . jobId , callback ) ;
217
213
218
- assert . deepEqual ( callback . firstCall . args [ 0 ] , error ) ;
219
- assert . equal ( callback . firstCall . args [ 1 ] , undefined ) ;
214
+ assert . equal ( callback . calledOnce , true ) ;
215
+ assert . deepEqual ( callback . firstCall . args , [ error ] ) ;
220
216
} ) ;
221
217
} ) ;
222
218
0 commit comments