@@ -176,6 +176,46 @@ describe('gcpDetector', () => {
176
176
} ) ;
177
177
} ) ;
178
178
179
+ it ( 'should return resource and undefined for non-available kubernetes attributes' , async ( ) => {
180
+ process . env . KUBERNETES_SERVICE_HOST = 'my-host' ;
181
+ process . env . HOSTNAME = 'my-hostname' ;
182
+ process . env . CONTAINER_NAME = 'my-container-name' ;
183
+ const scope = nock ( HOST_ADDRESS )
184
+ . get ( INSTANCE_PATH )
185
+ . reply ( 200 , { } , HEADERS )
186
+ . get ( INSTANCE_ID_PATH )
187
+ . reply ( 200 , ( ) => '4520031799277581759' , HEADERS )
188
+ . get ( CLUSTER_NAME_PATH )
189
+ . reply ( 200 , ( ) => 'my-cluster' , HEADERS )
190
+ . get ( PROJECT_ID_PATH )
191
+ . reply ( 200 , ( ) => 'my-project-id' , HEADERS )
192
+ . get ( ZONE_PATH )
193
+ . reply ( 200 , ( ) => 'project/zone/my-zone' , HEADERS )
194
+ . get ( HOSTNAME_PATH )
195
+ . reply ( 200 , ( ) => 'dev.my-project.local' , HEADERS ) ;
196
+ const secondaryScope = nock ( SECONDARY_HOST_ADDRESS )
197
+ . get ( INSTANCE_PATH )
198
+ . reply ( 200 , { } , HEADERS ) ;
199
+
200
+ const resource = detectResources ( { detectors : [ gcpDetector ] } ) ;
201
+ await resource . waitForAsyncAttributes ?.( ) ;
202
+
203
+ secondaryScope . done ( ) ;
204
+ scope . done ( ) ;
205
+
206
+ assertCloudResource ( resource , {
207
+ provider : 'gcp' ,
208
+ accountId : 'my-project-id' ,
209
+ zone : 'my-zone' ,
210
+ } ) ;
211
+ assertK8sResource ( resource , {
212
+ clusterName : 'my-cluster' ,
213
+ podName : 'my-hostname' ,
214
+ namespaceName : undefined ,
215
+ } ) ;
216
+ assertContainerResource ( resource , { name : 'my-container-name' } ) ;
217
+ } ) ;
218
+
179
219
it ( 'returns empty resource if not detected' , async ( ) => {
180
220
const resource = detectResources ( { detectors : [ gcpDetector ] } ) ;
181
221
await resource . waitForAsyncAttributes ?.( ) ;
0 commit comments