@@ -13,6 +13,7 @@ import (
1313
1414 "github.com/aws/amazon-cloudwatch-agent/tool/testutil"
1515 "github.com/aws/amazon-cloudwatch-agent/translator"
16+ "github.com/aws/amazon-cloudwatch-agent/translator/context"
1617 _ "github.com/aws/amazon-cloudwatch-agent/translator/registerrules"
1718 "github.com/aws/amazon-cloudwatch-agent/translator/translate/agent"
1819 "github.com/aws/amazon-cloudwatch-agent/translator/translate/otel/common"
@@ -22,6 +23,8 @@ import (
2223
2324func TestHealthCheckExtension (t * testing.T ) {
2425 agent .Global_Config .Region = "us-east-1"
26+
27+ // Test case 1: Non-Kubernetes environment should NOT have health check extension
2528 input := map [string ]interface {}{
2629 "metrics" : map [string ]interface {}{
2730 "metrics_collected" : map [string ]interface {}{
@@ -34,15 +37,45 @@ func TestHealthCheckExtension(t *testing.T) {
3437 require .NoError (t , err )
3538 require .NotNil (t , cfg )
3639
37- // Verify that the health check extension is registered
40+ // Verify that the health check extension is NOT registered for non-Kubernetes
3841 extensionFound := false
3942 for _ , ext := range cfg .Service .Extensions {
4043 if ext .Type ().String () == "health_check" {
4144 extensionFound = true
4245 break
4346 }
4447 }
45- assert .True (t , extensionFound , "Health check extension should be registered" )
48+ assert .False (t , extensionFound , "Health check extension should NOT be registered for non-Kubernetes environments" )
49+
50+ // Test case 2: Kubernetes environment should have health check extension
51+ inputK8s := map [string ]interface {}{
52+ "logs" : map [string ]interface {}{
53+ "metrics_collected" : map [string ]interface {}{
54+ "kubernetes" : map [string ]interface {}{
55+ "cluster_name" : "TestCluster" ,
56+ },
57+ },
58+ },
59+ }
60+
61+ // Set Kubernetes mode in context for this test
62+ ctx := context .CurrentContext ()
63+ ctx .SetKubernetesMode ("EKS" )
64+ defer ctx .SetKubernetesMode ("" ) // Reset after test
65+
66+ cfgK8s , err := Translate (inputK8s , "linux" )
67+ require .NoError (t , err )
68+ require .NotNil (t , cfgK8s )
69+
70+ // Verify that the health check extension IS registered for Kubernetes
71+ extensionFoundK8s := false
72+ for _ , ext := range cfgK8s .Service .Extensions {
73+ if ext .Type ().String () == "health_check" {
74+ extensionFoundK8s = true
75+ break
76+ }
77+ }
78+ assert .True (t , extensionFoundK8s , "Health check extension should be registered for Kubernetes environments" )
4679}
4780
4881func TestTranslator (t * testing.T ) {
0 commit comments