mirror of https://github.com/artifacthub/hub.git
49 lines
1.2 KiB
Go
49 lines
1.2 KiB
Go
package util
|
|
|
|
import (
|
|
"io"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestSetupConfig(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
// Check config file must exist for test cmd
|
|
cfg, err := SetupConfig("test")
|
|
require.Error(t, err)
|
|
require.Nil(t, cfg)
|
|
|
|
// Create config file for test cmd in $HOME/.cfg
|
|
dir := filepath.Join(os.Getenv("HOME"), ".cfg")
|
|
name := filepath.Join(dir, "test.yaml")
|
|
err = os.MkdirAll(dir, 0755)
|
|
require.NoError(t, err)
|
|
f, err := os.Create(name)
|
|
require.NoError(t, err)
|
|
defer os.Remove(name)
|
|
_, err = io.WriteString(f, `key1: value1`)
|
|
require.NoError(t, err)
|
|
|
|
// Check SetupConfig now succeeds
|
|
cfg, err = SetupConfig("test")
|
|
require.NoError(t, err)
|
|
require.NotNil(t, cfg)
|
|
assert.Equal(t, "value1", cfg.GetString("key1"))
|
|
|
|
// Check environment variables are also available in the config
|
|
os.Setenv("TEST_KEY2", "value2")
|
|
os.Setenv("TEST_KEY3_EXTRA", "value3")
|
|
os.Setenv("TEST_KEY4_EXTRA", "value4")
|
|
cfg, err = SetupConfig("test")
|
|
require.NoError(t, err)
|
|
assert.Equal(t, "value1", cfg.GetString("key1"))
|
|
assert.Equal(t, "value2", cfg.GetString("key2"))
|
|
assert.Equal(t, "value3", cfg.GetString("key3.extra"))
|
|
assert.Equal(t, "value4", cfg.GetString("key4-extra"))
|
|
}
|