package iam_test import ( "os" "path/filepath" "testing" "github.com/stretchr/testify/assert" "edge-infra.dev/pkg/lib/build/bazel" "edge-infra.dev/pkg/lib/gcp/iam" ) func TestResolveGoogleAppCreds_Environment(t *testing.T) { t.Setenv(iam.GoogleAppCredsEnvVar, "/not/a/real/dir") result, err := iam.ResolveGoogleAppCreds() assert.NoError(t, err) assert.Equal(t, "/not/a/real/dir", result) } func TestResolveGoogleAppCreds_Homedir(t *testing.T) { testdir, err := bazel.NewTestTmpDir("edge-infra-iam-test-*") defer os.RemoveAll(testdir) assert.NoError(t, err) t.Setenv("HOME", testdir) // Create Gcloud directory err = os.MkdirAll(filepath.Join(testdir, ".config/gcloud"), 0755) assert.NoError(t, err) // Touch empty file so GetGoogleAppCreds finds it defaultAppCredsPath := filepath.Join(testdir, ".config/gcloud/application_default_credentials.json") _, err = os.Create(defaultAppCredsPath) defer os.Remove(defaultAppCredsPath) assert.NoError(t, err) // test result, err := iam.ResolveGoogleAppCreds() assert.NoError(t, err) assert.Equal(t, defaultAppCredsPath, result) }