package main import ( "os" "path/filepath" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestRegistryCredentialsDir(t *testing.T) { t.Run("missing file", func(t *testing.T) { dir := t.TempDir() t.Setenv("DOCKER_CONFIG", dir) got, found, readErr := registryCredentialsDir() assert.Equal(t, dir, got) assert.False(t, found) assert.NoError(t, readErr) }) t.Run("readable file", func(t *testing.T) { dir := t.TempDir() require.NoError(t, os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o600)) t.Setenv("DOCKER_CONFIG", dir) _, found, readErr := registryCredentialsDir() assert.True(t, found) assert.NoError(t, readErr) }) t.Run("unreadable file", func(t *testing.T) { if os.Geteuid() == 0 { t.Skip("root can read any file") } dir := t.TempDir() require.NoError(t, os.WriteFile(filepath.Join(dir, "config.json"), []byte("{}"), 0o000)) t.Setenv("DOCKER_CONFIG", dir) _, found, readErr := registryCredentialsDir() assert.True(t, found) assert.Error(t, readErr) }) }