diff --git a/packages/google-cloud-compute/src/firewall.js b/packages/google-cloud-compute/src/firewall.js index 2b12379fa02..362ab554d5e 100644 --- a/packages/google-cloud-compute/src/firewall.js +++ b/packages/google-cloud-compute/src/firewall.js @@ -267,7 +267,7 @@ class Firewall extends common.ServiceObject { callback = callback || common.util.noop; metadata = metadata || {}; metadata.name = this.name; - metadata.network = this.metadata.network; + metadata.network = metadata.network || this.metadata.network; this.request( { method: 'PATCH', diff --git a/packages/google-cloud-compute/test/firewall.js b/packages/google-cloud-compute/test/firewall.js index b21ba2af9bd..281b640cb68 100644 --- a/packages/google-cloud-compute/test/firewall.js +++ b/packages/google-cloud-compute/test/firewall.js @@ -47,7 +47,7 @@ describe('Firewall', function() { createFirewall: util.noop, }; const FIREWALL_NAME = 'tcp-3000'; - const FIREWALL_NETWORK = 'global/networks/default'; + const DEFAULT_FIREWALL_NETWORK = 'global/networks/default'; before(function() { Firewall = proxyquire('../src/firewall.js', { @@ -76,7 +76,9 @@ describe('Firewall', function() { }); it('should default to the global network', function() { - assert.deepStrictEqual(firewall.metadata, {network: FIREWALL_NETWORK}); + assert.deepStrictEqual(firewall.metadata, { + network: DEFAULT_FIREWALL_NETWORK, + }); }); it('should inherit from ServiceObject', function() { @@ -188,7 +190,7 @@ describe('Firewall', function() { assert.strictEqual(reqOpts.json, metadata); assert.deepStrictEqual(metadata, { name: firewall.name, - network: FIREWALL_NETWORK, + network: DEFAULT_FIREWALL_NETWORK, }); done(); @@ -197,6 +199,17 @@ describe('Firewall', function() { firewall.setMetadata(metadata, assert.ifError); }); + it('should respect network specification', function(done) { + const metadata = {network: 'custom-network'}; + + firewall.request = function(reqOpts) { + assert.strictEqual(reqOpts.json.network, metadata.network); + done(); + }; + + firewall.setMetadata(metadata, assert.ifError); + }); + describe('error', function() { const error = new Error('Error.'); const apiResponse = {a: 'b', c: 'd'};