@@ -86,25 +86,54 @@ func TestCreateTLSConfig(t *testing.T) {
8686 }),
8787 expectError : false ,
8888 },
89+ {
90+ name : "insecure skip verify with invalid CA cert path should not error" ,
91+ promConfig : testConfigFromEnv (t , map [string ]string {
92+ "PROMETHEUS_BASE_URL" : "https://prometheus:9090" ,
93+ "PROMETHEUS_TLS_INSECURE_SKIP_VERIFY" : "true" ,
94+ "PROMETHEUS_CA_CERT_PATH" : "/nonexistent/path/ca.crt" ,
95+ }),
96+ expectError : false ,
97+ },
8998 }
9099
91100 for _ , tt := range tests {
92101 t .Run (tt .name , func (t * testing.T ) {
93- config , err := CreateTLSConfig (tt .promConfig )
102+ tlsCfg , err := CreateTLSConfig (tt .promConfig )
94103 if tt .expectError {
95104 assert .Error (t , err )
96105 return
97106 }
98107 assert .NoError (t , err )
99108 if tt .promConfig != nil {
100- assert .NotNil (t , config )
109+ assert .NotNil (t , tlsCfg )
101110 } else {
102- assert .Nil (t , config )
111+ assert .Nil (t , tlsCfg )
103112 }
104113 })
105114 }
106115}
107116
117+ func TestCreateTLSConfig_InsecureSkipVerifySkipsCertLoading (t * testing.T ) {
118+ invalidCertFile , err := os .CreateTemp (t .TempDir (), "invalid-cert-*.crt" )
119+ require .NoError (t , err )
120+ _ , err = invalidCertFile .WriteString ("# CA certificate not provided - using system CA bundle" )
121+ require .NoError (t , err )
122+ require .NoError (t , invalidCertFile .Close ())
123+
124+ cfg := testConfigFromEnv (t , map [string ]string {
125+ "PROMETHEUS_BASE_URL" : "https://prometheus:9090" ,
126+ "PROMETHEUS_TLS_INSECURE_SKIP_VERIFY" : "true" ,
127+ "PROMETHEUS_CA_CERT_PATH" : invalidCertFile .Name (),
128+ })
129+
130+ tlsCfg , err := CreateTLSConfig (cfg )
131+ assert .NoError (t , err )
132+ assert .NotNil (t , tlsCfg )
133+ assert .True (t , tlsCfg .InsecureSkipVerify )
134+ assert .Nil (t , tlsCfg .RootCAs , "RootCAs should be nil when insecureSkipVerify is true" )
135+ }
136+
108137func TestValidateTLSConfig (t * testing.T ) {
109138 tests := []struct {
110139 name string
0 commit comments