Skip to content

Commit fe753cb

Browse files
authored
test(cloudflare): clear environment variables before setting test values (#5851)
* test(cloudflare): clear environment variables before setting test values Signed-off-by: u-kai <[email protected]> * refactor(cloudflare): extract environment variable names to package constants Signed-off-by: u-kai <[email protected]> * refactor(cloudflare): use testutils helper for test environment setup Signed-off-by: u-kai <[email protected]> * refactor(cloudflare): simplify token handling and improve test env setup Signed-off-by: u-kai <[email protected]> --------- Signed-off-by: u-kai <[email protected]>
1 parent ef62107 commit fe753cb

File tree

2 files changed

+30
-16
lines changed

2 files changed

+30
-16
lines changed

provider/cloudflare/cloudflare.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ import (
4646
type changeAction int
4747

4848
const (
49+
// Environment variable names for CloudFlare authentication
50+
cfAPIEmailEnvKey = "CF_API_EMAIL"
51+
cfAPIKeyEnvKey = "CF_API_KEY"
52+
cfAPITokenEnvKey = "CF_API_TOKEN"
53+
4954
// cloudFlareCreate is a ChangeAction enum value
5055
cloudFlareCreate changeAction = iota
5156
// cloudFlareDelete is a ChangeAction enum value
@@ -327,12 +332,12 @@ func NewCloudFlareProvider(
327332
configV4 *cloudflare.Client
328333
err error
329334
)
330-
if os.Getenv("CF_API_TOKEN") != "" {
331-
token := os.Getenv("CF_API_TOKEN")
332-
if strings.HasPrefix(token, "file:") {
333-
tokenBytes, err := os.ReadFile(strings.TrimPrefix(token, "file:"))
335+
token := os.Getenv(cfAPITokenEnvKey)
336+
if token != "" {
337+
if trimed, ok := strings.CutPrefix(token, "file:"); ok {
338+
tokenBytes, err := os.ReadFile(trimed)
334339
if err != nil {
335-
return nil, fmt.Errorf("failed to read CF_API_TOKEN from file: %w", err)
340+
return nil, fmt.Errorf("failed to read %s from file: %w", cfAPITokenEnvKey, err)
336341
}
337342
token = strings.TrimSpace(string(tokenBytes))
338343
}
@@ -341,10 +346,10 @@ func NewCloudFlareProvider(
341346
option.WithAPIToken(token),
342347
)
343348
} else {
344-
config, err = cloudflarev0.New(os.Getenv("CF_API_KEY"), os.Getenv("CF_API_EMAIL"))
349+
config, err = cloudflarev0.New(os.Getenv(cfAPIKeyEnvKey), os.Getenv(cfAPIEmailEnvKey))
345350
configV4 = cloudflare.NewClient(
346-
option.WithAPIKey(os.Getenv("CF_API_KEY")),
347-
option.WithAPIEmail(os.Getenv("CF_API_EMAIL")),
351+
option.WithAPIKey(os.Getenv(cfAPIKeyEnvKey)),
352+
option.WithAPIEmail(os.Getenv(cfAPIEmailEnvKey)),
348353
)
349354
}
350355
if err != nil {

provider/cloudflare/cloudflare_test.go

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -949,6 +949,13 @@ func TestCloudflareProvider(t *testing.T) {
949949
Value string
950950
}
951951

952+
// unset environment variables to avoid interference with tests
953+
testutils.TestHelperEnvSetter(t, map[string]string{
954+
cfAPIEmailEnvKey: "",
955+
cfAPIKeyEnvKey: "",
956+
cfAPITokenEnvKey: "",
957+
})
958+
952959
tokenFile := "/tmp/cf_api_token"
953960
if err := os.WriteFile(tokenFile, []byte("abc123def"), 0o644); err != nil {
954961
t.Errorf("failed to write token file, %s", err)
@@ -962,22 +969,22 @@ func TestCloudflareProvider(t *testing.T) {
962969
{
963970
Name: "use_api_token",
964971
Environment: []EnvVar{
965-
{Key: "CF_API_TOKEN", Value: "abc123def"},
972+
{Key: cfAPITokenEnvKey, Value: "abc123def"},
966973
},
967974
ShouldFail: false,
968975
},
969976
{
970977
Name: "use_api_token_file_contents",
971978
Environment: []EnvVar{
972-
{Key: "CF_API_TOKEN", Value: tokenFile},
979+
{Key: cfAPITokenEnvKey, Value: tokenFile},
973980
},
974981
ShouldFail: false,
975982
},
976983
{
977984
Name: "use_email_and_key",
978985
Environment: []EnvVar{
979-
{Key: "CF_API_KEY", Value: "xxxxxxxxxxxxxxxxx"},
980-
{Key: "CF_API_EMAIL", Value: "[email protected]"},
986+
{Key: cfAPIKeyEnvKey, Value: "xxxxxxxxxxxxxxxxx"},
987+
{Key: cfAPIEmailEnvKey, Value: "[email protected]"},
981988
},
982989
ShouldFail: false,
983990
},
@@ -989,14 +996,14 @@ func TestCloudflareProvider(t *testing.T) {
989996
{
990997
Name: "use_credentials_in_missing_file",
991998
Environment: []EnvVar{
992-
{Key: "CF_API_TOKEN", Value: "file://abc"},
999+
{Key: cfAPITokenEnvKey, Value: "file://abc"},
9931000
},
9941001
ShouldFail: true,
9951002
},
9961003
{
9971004
Name: "use_credentials_in_missing_file",
9981005
Environment: []EnvVar{
999-
{Key: "CF_API_TOKEN", Value: "file:/tmp/cf_api_token"},
1006+
{Key: cfAPITokenEnvKey, Value: "file:/tmp/cf_api_token"},
10001007
},
10011008
ShouldFail: false,
10021009
},
@@ -1809,8 +1816,10 @@ func TestCustomTTLWithEnabledProxyNotChanged(t *testing.T) {
18091816
}
18101817

18111818
func TestCloudFlareProvider_Region(t *testing.T) {
1812-
t.Setenv("CF_API_TOKEN", "abc123def")
1813-
t.Setenv("CF_API_EMAIL", "[email protected]")
1819+
testutils.TestHelperEnvSetter(t, map[string]string{
1820+
cfAPITokenEnvKey: "abc123def",
1821+
cfAPIEmailEnvKey: "[email protected]",
1822+
})
18141823
provider, err := NewCloudFlareProvider(
18151824
endpoint.NewDomainFilter([]string{"example.com"}),
18161825
provider.ZoneIDFilter{},

0 commit comments

Comments
 (0)