1818
1919var assert = require ( 'assert' ) ;
2020var extend = require ( 'extend' ) ;
21-
22- var Metadata = require ( '../src/metadata.js' ) ;
21+ var proxyquire = require ( 'proxyquire' ) ;
22+
23+ var instanceArgsOverride ;
24+ var fakeGcpMetadata = {
25+ instance : function ( path , cb ) {
26+ setImmediate ( function ( ) {
27+ var args = instanceArgsOverride || [ null , null , 'fake-instance-value' ] ;
28+ cb . apply ( fakeGcpMetadata , args ) ;
29+ } ) ;
30+ }
31+ } ;
2332
2433describe ( 'metadata' , function ( ) {
2534 var MetadataCached ;
35+ var Metadata ;
2636 var metadata ;
2737
2838 var PROJECT_ID = 'project-id' ;
@@ -31,6 +41,10 @@ describe('metadata', function() {
3141 var ENV_CACHED = extend ( { } , process . env ) ;
3242
3343 before ( function ( ) {
44+ Metadata = proxyquire ( '../src/metadata.js' , {
45+ 'gcp-metadata' : fakeGcpMetadata
46+ } ) ;
47+
3448 MetadataCached = extend ( { } , Metadata ) ;
3549 } ) ;
3650
@@ -40,6 +54,7 @@ describe('metadata', function() {
4054 } ;
4155 extend ( Metadata , MetadataCached ) ;
4256 metadata = new Metadata ( LOGGING ) ;
57+ instanceArgsOverride = null ;
4358 } ) ;
4459
4560 afterEach ( function ( ) {
@@ -104,12 +119,31 @@ describe('metadata', function() {
104119 } ) ;
105120
106121 describe ( 'getGKEDescriptor' , function ( ) {
107- it ( 'should return the correct descriptor' , function ( ) {
108- assert . deepEqual ( Metadata . getGKEDescriptor ( PROJECT_ID ) , {
109- type : 'container' ,
110- labels : {
111- project_id : PROJECT_ID
112- }
122+ var CLUSTER_NAME = 'gke-cluster-name' ;
123+
124+ it ( 'should return the correct descriptor' , function ( done ) {
125+ instanceArgsOverride = [ null , null , CLUSTER_NAME ] ;
126+
127+ Metadata . getGKEDescriptor ( PROJECT_ID , function ( err , descriptor ) {
128+ assert . ifError ( err ) ;
129+ assert . deepEqual ( descriptor , {
130+ type : 'container' ,
131+ labels : {
132+ cluster_name : CLUSTER_NAME ,
133+ project_id : PROJECT_ID
134+ }
135+ } ) ;
136+ done ( ) ;
137+ } ) ;
138+ } ) ;
139+
140+ it ( 'should return error on failure to acquire metadata' , function ( done ) {
141+ var FAKE_ERROR = new Error ( ) ;
142+ instanceArgsOverride = [ FAKE_ERROR ] ;
143+
144+ Metadata . getGKEDescriptor ( PROJECT_ID , function ( err ) {
145+ assert . strictEqual ( err , FAKE_ERROR ) ;
146+ done ( ) ;
113147 } ) ;
114148 } ) ;
115149 } ) ;
@@ -248,12 +282,8 @@ describe('metadata', function() {
248282
249283 describe ( 'container engine' , function ( ) {
250284 it ( 'should return correct descriptor' , function ( done ) {
251- var DESCRIPTOR = { } ;
252-
253- Metadata . getGKEDescriptor = function ( projectId ) {
254- assert . strictEqual ( projectId , RETURNED_PROJECT_ID ) ;
255- return DESCRIPTOR ;
256- } ;
285+ var CLUSTER_NAME = 'overridden-value' ;
286+ instanceArgsOverride = [ null , null , CLUSTER_NAME ] ;
257287
258288 metadata . logging . auth . getEnvironment = function ( callback ) {
259289 callback ( null , {
@@ -264,7 +294,13 @@ describe('metadata', function() {
264294
265295 metadata . getDefaultResource ( function ( err , defaultResource ) {
266296 assert . ifError ( err ) ;
267- assert . strictEqual ( defaultResource , DESCRIPTOR ) ;
297+ assert . deepStrictEqual ( defaultResource , {
298+ type : 'container' ,
299+ labels : {
300+ cluster_name : CLUSTER_NAME ,
301+ project_id : RETURNED_PROJECT_ID
302+ }
303+ } ) ;
268304 done ( ) ;
269305 } ) ;
270306 } ) ;
0 commit comments