Skip to content

Commit 4a1921c

Browse files
Merge pull request #2 from stephenplusplus/containership--subnetworks
fix coverage
2 parents 3d6ff28 + 61c207a commit 4a1921c

2 files changed

Lines changed: 72 additions & 34 deletions

File tree

lib/compute/region.js

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -235,13 +235,13 @@ Region.prototype.createAddress = function(name, options, callback) {
235235
* @param {string} name - Name of the subnetwork.
236236
* @param {object} config - See a
237237
* [Subnetwork resource](https://cloud.google.com/compute/docs/reference/v1/subnetworks#resource).
238+
* @param {module:compute/network|string} config.network - The network to which
239+
* this subnetwork belongs. **Only networks that are in the distributed mode
240+
* can have subnetworks.**
238241
* @param {string} config.range - The range of internal addresses that
239242
* are owned by this subnetwork. [CIDR](http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing) range
240243
* of addresses that are legal on this network. (Alias for
241244
* `config.ipCidrRange`)
242-
* @param {module:compute/network|string} config.network - The network to which
243-
* this subnetwork belongs. **Only networks that are in the distributed mode
244-
* can have subnetworks.**
245245
* @param {function} callback - The callback function.
246246
* @param {?error} callback.err - An error returned while making this request.
247247
* @param {module:compute/subnetwork} callback.subnetwork - The created
@@ -251,10 +251,8 @@ Region.prototype.createAddress = function(name, options, callback) {
251251
* @param {object} callback.apiResponse - The full API response.
252252
*
253253
* @example
254-
* var name = 'new-subnetwork-name';
255-
*
256254
* var config = {
257-
* network : 'global/networks/network-name',
255+
* network: 'network1',
258256
* range: '10.0.1.0/24'
259257
* };
260258
*
@@ -265,7 +263,7 @@ Region.prototype.createAddress = function(name, options, callback) {
265263
* // of the request.
266264
* }
267265
*
268-
* region.createSubnetwork(name, config, callback);
266+
* region.createSubnetwork('new-subnetwork-name', config, callback);
269267
*/
270268
Region.prototype.createSubnetwork = function(name, config, callback) {
271269
var self = this;

test/compute/region.js

Lines changed: 67 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,10 @@ function FakeRule() {
3737
this.calledWith_ = [].slice.call(arguments);
3838
}
3939

40+
function FakeNetwork() {
41+
this.calledWith_ = [].slice.call(arguments);
42+
}
43+
4044
function FakeSubnetwork() {
4145
this.calledWith_ = [].slice.call(arguments);
4246
}
@@ -82,6 +86,7 @@ describe('Region', function() {
8286
);
8387
mockery.registerMock('../../lib/common/stream-router.js', fakeStreamRouter);
8488
mockery.registerMock('../../lib/compute/address.js', FakeAddress);
89+
mockery.registerMock('../../lib/compute/network.js', FakeNetwork);
8590
mockery.registerMock('../../lib/compute/operation.js', FakeOperation);
8691
mockery.registerMock('../../lib/compute/rule.js', FakeRule);
8792
mockery.registerMock('../../lib/compute/subnetwork.js', FakeSubnetwork);
@@ -275,8 +280,12 @@ describe('Region', function() {
275280

276281
describe('createSubnetwork', function() {
277282
var NAME = 'subnetwork-name';
278-
var OPTIONS = { a: 'b', c: 'd' };
279-
var EXPECTED_BODY = extend({}, OPTIONS, { name: NAME });
283+
var CONFIG = {
284+
a: 'b',
285+
c: 'd',
286+
network: 'network-name'
287+
};
288+
var EXPECTED_BODY = extend({}, CONFIG, { name: NAME });
280289

281290
it('should make the correct API request', function(done) {
282291
region.request = function(reqOpts) {
@@ -287,7 +296,41 @@ describe('Region', function() {
287296
done();
288297
};
289298

290-
region.createSubnetwork(NAME, OPTIONS, assert.ifError);
299+
region.createSubnetwork(NAME, CONFIG, assert.ifError);
300+
});
301+
302+
describe('config.network', function() {
303+
it('should accept a Network object', function(done) {
304+
var network = new FakeNetwork();
305+
network.formattedName = 'formatted-name';
306+
307+
var config = extend({}, CONFIG, {
308+
network: network
309+
});
310+
311+
region.request = function(reqOpts) {
312+
assert.strictEqual(reqOpts.json.network, network.formattedName);
313+
done();
314+
};
315+
316+
region.createSubnetwork(NAME, config, assert.ifError);
317+
});
318+
});
319+
320+
describe('config.range', function() {
321+
it('should accept and delete a range property', function(done) {
322+
var config = extend({}, CONFIG, {
323+
range: '...'
324+
});
325+
326+
region.request = function(reqOpts) {
327+
assert.strictEqual(reqOpts.json.ipCidrRange, config.range);
328+
assert.strictEqual(reqOpts.json.range, undefined);
329+
done();
330+
};
331+
332+
region.createSubnetwork(NAME, config, assert.ifError);
333+
});
291334
});
292335

293336
describe('error', function() {
@@ -301,10 +344,9 @@ describe('Region', function() {
301344
});
302345

303346
it('should execute callback with error & API response', function(done) {
304-
region.createSubnetwork(NAME, OPTIONS,
305-
function(err, subnetwork_, op, resp) {
347+
region.createSubnetwork(NAME, CONFIG, function(err, sub, op, resp) {
306348
assert.strictEqual(err, error);
307-
assert.strictEqual(subnetwork_, null);
349+
assert.strictEqual(sub, null);
308350
assert.strictEqual(op, null);
309351
assert.strictEqual(resp, apiResponse);
310352
done();
@@ -321,34 +363,32 @@ describe('Region', function() {
321363
};
322364
});
323365

324-
it('should exec callback with Subnetwork, Op & apiResponse',
325-
function(done) {
326-
var subnetwork = {};
327-
var operation = {};
366+
it('should exec cb with Subnetwork, Op & apiResponse', function(done) {
367+
var subnetwork = {};
368+
var operation = {};
328369

329-
region.subnetwork = function(name) {
330-
assert.strictEqual(name, NAME);
331-
return subnetwork;
332-
};
370+
region.subnetwork = function(name) {
371+
assert.strictEqual(name, NAME);
372+
return subnetwork;
373+
};
333374

334-
region.operation = function(name) {
335-
assert.strictEqual(name, apiResponse.name);
336-
return operation;
337-
};
375+
region.operation = function(name) {
376+
assert.strictEqual(name, apiResponse.name);
377+
return operation;
378+
};
338379

339-
region.createSubnetwork(NAME, OPTIONS,
340-
function(err, subnetwork_, op, resp) {
341-
assert.ifError(err);
380+
region.createSubnetwork(NAME, CONFIG, function(err, sub, op, resp) {
381+
assert.ifError(err);
342382

343-
assert.strictEqual(subnetwork_, subnetwork);
383+
assert.strictEqual(sub, subnetwork);
344384

345-
assert.strictEqual(op, operation);
346-
assert.strictEqual(op.metadata, resp);
385+
assert.strictEqual(op, operation);
386+
assert.strictEqual(op.metadata, resp);
347387

348-
assert.strictEqual(resp, apiResponse);
349-
done();
350-
});
388+
assert.strictEqual(resp, apiResponse);
389+
done();
351390
});
391+
});
352392
});
353393
});
354394

0 commit comments

Comments
 (0)