@@ -23,6 +23,8 @@ var proxyquire = require('proxyquire');
2323var ServiceObject = require ( '@google-cloud/common' ) . ServiceObject ;
2424var util = require ( '@google-cloud/common' ) . util ;
2525
26+ var utilCached = extend ( { } , util ) ;
27+
2628var promisified = false ;
2729var fakeUtil = extend ( { } , util , {
2830 promisifyAll : function ( Class ) {
@@ -46,7 +48,12 @@ describe('VM', function() {
4648 var Disk ;
4749 var DISK ;
4850
49- var COMPUTE = { projectId : 'project-id' } ;
51+ var COMPUTE = {
52+ authClient : {
53+ projectId : 'project-id'
54+ } ,
55+ projectId : 'project-id'
56+ } ;
5057 var ZONE = {
5158 compute : COMPUTE ,
5259 name : 'us-central1-a' ,
@@ -70,6 +77,7 @@ describe('VM', function() {
7077 } ) ;
7178
7279 beforeEach ( function ( ) {
80+ extend ( fakeUtil , utilCached ) ;
7381 vm = new VM ( ZONE , VM_NAME ) ;
7482 DISK = new Disk ( ZONE , 'disk-name' ) ;
7583 } ) ;
@@ -229,7 +237,7 @@ describe('VM', function() {
229237 beforeEach ( function ( ) {
230238 DEVICE_NAME = DISK . formattedName ;
231239
232- METADATA = METADATA = {
240+ METADATA = {
233241 disks : [
234242 {
235243 source : DEVICE_NAME ,
@@ -254,6 +262,36 @@ describe('VM', function() {
254262 } ) ;
255263 } ) ;
256264
265+ it ( 'should replace projectId token in disk name' , function ( done ) {
266+ var REPLACED_DEVICE_NAME = 'replaced-device-name' ;
267+
268+ fakeUtil . replaceProjectIdToken = function ( value , projectId ) {
269+ assert . strictEqual ( value , DISK . formattedName ) ;
270+ assert . strictEqual ( projectId , COMPUTE . authClient . projectId ) ;
271+ return REPLACED_DEVICE_NAME ;
272+ } ;
273+
274+ vm . getMetadata = function ( callback ) {
275+ var metadata = {
276+ disks : [
277+ {
278+ source : REPLACED_DEVICE_NAME ,
279+ deviceName : REPLACED_DEVICE_NAME
280+ }
281+ ]
282+ } ;
283+
284+ callback ( null , metadata , metadata ) ;
285+ } ;
286+
287+ vm . request = function ( reqOpts ) {
288+ assert . strictEqual ( reqOpts . qs . deviceName , REPLACED_DEVICE_NAME ) ;
289+ done ( ) ;
290+ } ;
291+
292+ vm . detachDisk ( DISK , assert . ifError ) ;
293+ } ) ;
294+
257295 it ( 'should return an error if device name not found' , function ( done ) {
258296 var metadata = {
259297 disks : [
0 commit comments