Skip to content

Commit 90efd79

Browse files
committed
Use stub instead of anonymous function.
1 parent dbaf7b5 commit 90efd79

File tree

4 files changed

+400
-293
lines changed

4 files changed

+400
-293
lines changed

bigquery/test/queries.test.js

Lines changed: 95 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -63,35 +63,39 @@ describe('bigquery:query', function () {
6363

6464
it('should return results', function () {
6565
var example = getSample();
66-
example.program.syncQuery(query,
67-
function (err, data) {
68-
assert.ifError(err);
69-
assert(example.mocks.bigquery.query.called);
70-
assert.deepEqual(data, example.mocks.natality);
71-
assert(console.log.calledWith(
72-
'SyncQuery: found %d rows!',
73-
data.length
74-
));
75-
}
76-
);
66+
var callback = sinon.stub();
67+
68+
example.program.syncQuery(query, callback);
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+
));
7777
});
7878

7979
it('should require a query', function () {
8080
var example = getSample();
81-
example.program.syncQuery(null, function (err, data) {
82-
assert.deepEqual(err, Error('"query" is required!'));
83-
assert.equal(data, undefined);
84-
});
81+
var callback = sinon.stub();
82+
83+
example.program.syncQuery(null, callback);
84+
85+
assert.deepEqual(callback.firstCall.args[0], new Error('"query" is required!'));
86+
assert.equal(callback.firstCall.args[1], undefined);
8587
});
8688

8789
it('should handle error', function () {
8890
var error = new Error('error');
8991
var example = getSample();
92+
var callback = sinon.stub();
9093
example.mocks.bigquery.query = sinon.stub().callsArgWith(1, error);
91-
example.program.syncQuery(query, function (err, data) {
92-
assert.deepEqual(err, error);
93-
assert.equal(data, undefined);
94-
});
94+
95+
example.program.syncQuery(query, callback);
96+
97+
assert.deepEqual(callback.firstCall.args[0], error);
98+
assert.equal(callback.firstCall.args[1], undefined);
9599
});
96100
});
97101

@@ -100,106 +104,119 @@ describe('bigquery:query', function () {
100104

101105
it('should submit a job', function () {
102106
var example = getSample();
103-
example.program.asyncQuery(query,
104-
function (err, job) {
105-
assert.ifError(err);
106-
assert(example.mocks.bigquery.startQuery.called);
107-
assert.deepEqual(example.mocks.job, job);
108-
assert(console.log.calledWith(
109-
'AsyncQuery: submitted job %s!', example.jobId
110-
));
111-
}
112-
);
107+
var callback = sinon.stub();
108+
109+
example.program.asyncQuery(query, callback);
110+
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+
));
113117
});
114118

115119
it('should require a query', function () {
116120
var example = getSample();
117-
example.program.asyncQuery(null, function (err, job) {
118-
assert.deepEqual(err, Error('"query" is required!'));
119-
assert.equal(job, undefined);
120-
});
121+
var callback = sinon.stub();
122+
123+
example.program.asyncQuery(null, callback);
124+
125+
assert.deepEqual(callback.firstCall.args[0], new Error('"query" is required!'));
126+
assert.equal(callback.firstCall.args[1], undefined);
121127
});
122128

123129
it('should handle error', function () {
124130
var error = new Error('error');
125131
var example = getSample();
132+
var callback = sinon.stub();
126133
example.mocks.bigquery.startQuery = sinon.stub().callsArgWith(1, error);
127-
example.program.asyncQuery(query, function (err, job) {
128-
assert.deepEqual(err, error);
129-
assert.equal(job, undefined);
130-
});
134+
135+
example.program.asyncQuery(query, callback);
136+
137+
assert.deepEqual(callback.firstCall.args[0], error);
138+
assert.equal(callback.firstCall.args[1], undefined);
131139
});
132140
});
133141

134142
describe('asyncPoll', function () {
135143
it('should get the results of a job given its ID', function () {
136144
var example = getSample();
145+
var callback = sinon.stub();
137146
example.mocks.bigquery.job = sinon.stub().returns(example.mocks.job);
138-
example.program.asyncPoll(example.jobId,
139-
function (err, rows) {
140-
assert.ifError(err);
141-
assert(example.mocks.job.getQueryResults.called);
142-
assert(console.log.calledWith(
143-
'AsyncQuery: polled job %s; got %d rows!',
144-
example.jobId,
145-
example.mocks.natality.length
146-
));
147-
}
148-
);
147+
148+
example.program.asyncPoll(example.jobId, callback);
149+
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+
));
149157
});
150158

151159
it('should report the status of a job', function () {
152160
var example = getSample();
153-
example.program.asyncPoll(example.jobId, function (err, rows) {
154-
assert.ifError(err);
155-
assert(example.mocks.job.getMetadata.called);
156-
assert(console.log.calledWith(
157-
'Job status: %s',
158-
example.mocks.metadata.status.state
159-
));
160-
});
161+
var callback = sinon.stub();
162+
163+
example.program.asyncPoll(example.jobId, callback);
164+
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+
));
161171
});
162172

163173
it('should check whether a job is finished', function () {
164174
var example = getSample();
175+
var callback = sinon.stub();
165176

166177
var pendingState = { status: { state: 'PENDING' } };
167178
example.mocks.job.getMetadata = sinon.stub().callsArgWith(0, null, pendingState);
168-
example.program.asyncPoll(example.jobId, function (err, rows) {
169-
assert.deepEqual(err, Error('Job %s is not done', example.jobId));
170-
assert(console.log.calledWith('Job status: %s', pendingState.status.state));
171-
assert(example.mocks.job.getMetadata.called);
172-
assert.equal(example.mocks.job.getQueryResults.called, false);
173-
assert.equal(rows, undefined);
174-
});
179+
180+
example.program.asyncPoll(example.jobId, callback);
181+
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);
186+
assert.equal(callback.firstCall.args[1], undefined);
175187

176188
var doneState = { status: { state: 'DONE' } };
177189
example.mocks.job.getMetadata = sinon.stub().callsArgWith(0, null, doneState);
178-
example.program.asyncPoll(example.jobId, function (err, rows) {
179-
assert.ifError(err);
180-
assert(console.log.calledWith('Job status: %s', doneState.status.state));
181-
assert(example.mocks.job.getMetadata.called);
182-
assert(example.mocks.job.getQueryResults.called);
183-
assert.equal(rows, example.mocks.natality);
184-
});
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);
185198
});
186199

187200
it('should require a job ID', function () {
188201
var example = getSample();
189-
example.program.asyncPoll(null, function (err, rows) {
190-
assert.deepEqual(err, Error('"jobId" is required!'));
191-
assert.equal(rows, undefined);
192-
});
202+
var callback = sinon.stub();
203+
204+
example.program.asyncPoll(null, callback);
205+
206+
assert.deepEqual(callback.firstCall.args[0], Error('"jobId" is required!'));
207+
assert.equal(callback.firstCall.args[1], undefined);
193208
});
194209

195210
it('should handle error', function () {
196211
var error = new Error('error');
197212
var example = getSample();
213+
var callback = sinon.stub();
198214
example.mocks.job.getQueryResults = sinon.stub().callsArgWith(0, error);
199-
example.program.asyncPoll(example.jobId, function (err, rows) {
200-
assert.deepEqual(err, error);
201-
assert.equal(rows, undefined);
202-
});
215+
216+
example.program.asyncPoll(example.jobId, callback);
217+
218+
assert.deepEqual(callback.firstCall.args[0], error);
219+
assert.equal(callback.firstCall.args[1], undefined);
203220
});
204221
});
205222

0 commit comments

Comments
 (0)