chore(master): run the master as nobody in the example stack (#25)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
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)
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user