18
18
19
19
var assert = require ( 'assert' ) ;
20
20
var 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
+ } ;
23
32
24
33
describe ( 'metadata' , function ( ) {
25
34
var MetadataCached ;
35
+ var Metadata ;
26
36
var metadata ;
27
37
28
38
var PROJECT_ID = 'project-id' ;
@@ -31,6 +41,10 @@ describe('metadata', function() {
31
41
var ENV_CACHED = extend ( { } , process . env ) ;
32
42
33
43
before ( function ( ) {
44
+ Metadata = proxyquire ( '../src/metadata.js' , {
45
+ 'gcp-metadata' : fakeGcpMetadata
46
+ } ) ;
47
+
34
48
MetadataCached = extend ( { } , Metadata ) ;
35
49
} ) ;
36
50
@@ -40,6 +54,7 @@ describe('metadata', function() {
40
54
} ;
41
55
extend ( Metadata , MetadataCached ) ;
42
56
metadata = new Metadata ( LOGGING ) ;
57
+ instanceArgsOverride = null ;
43
58
} ) ;
44
59
45
60
afterEach ( function ( ) {
@@ -104,12 +119,31 @@ describe('metadata', function() {
104
119
} ) ;
105
120
106
121
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 ( ) ;
113
147
} ) ;
114
148
} ) ;
115
149
} ) ;
@@ -248,12 +282,8 @@ describe('metadata', function() {
248
282
249
283
describe ( 'container engine' , function ( ) {
250
284
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 ] ;
257
287
258
288
metadata . logging . auth . getEnvironment = function ( callback ) {
259
289
callback ( null , {
@@ -264,7 +294,13 @@ describe('metadata', function() {
264
294
265
295
metadata . getDefaultResource ( function ( err , defaultResource ) {
266
296
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
+ } ) ;
268
304
done ( ) ;
269
305
} ) ;
270
306
} ) ;
0 commit comments