| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package config
- import (
- "os"
- "path/filepath"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- func TestDefaultPathInDir(t *testing.T) {
- t.Run("prefers config.yaml when both exist", func(t *testing.T) {
- dir := t.TempDir()
- want := filepath.Join(dir, "config.yaml")
- other := filepath.Join(dir, "config.yml")
- require.NoError(t, os.WriteFile(want, []byte("a: 1"), 0644))
- require.NoError(t, os.WriteFile(other, []byte("a: 2"), 0644))
- got, err := defaultPathInDir(dir)
- require.NoError(t, err)
- assert.Equal(t, want, got)
- })
- t.Run("returns config.yaml when only it exists", func(t *testing.T) {
- dir := t.TempDir()
- want := filepath.Join(dir, "config.yaml")
- require.NoError(t, os.WriteFile(want, []byte("a: 1"), 0644))
- got, err := defaultPathInDir(dir)
- require.NoError(t, err)
- assert.Equal(t, want, got)
- })
- t.Run("falls back to config.yml when only it exists", func(t *testing.T) {
- dir := t.TempDir()
- want := filepath.Join(dir, "config.yml")
- require.NoError(t, os.WriteFile(want, []byte("a: 1"), 0644))
- got, err := defaultPathInDir(dir)
- require.NoError(t, err)
- assert.Equal(t, want, got)
- })
- t.Run("errors when neither exists and names both paths", func(t *testing.T) {
- dir := t.TempDir()
- got, err := defaultPathInDir(dir)
- assert.Empty(t, got)
- require.Error(t, err)
- assert.Contains(t, err.Error(), filepath.Join(dir, "config.yaml"))
- assert.Contains(t, err.Error(), filepath.Join(dir, "config.yml"))
- })
- }
- func TestDefaultPath(t *testing.T) {
- got, err := DefaultPath()
- if err != nil {
- ex, exErr := os.Executable()
- require.NoError(t, exErr)
- assert.Contains(t, err.Error(), filepath.Dir(ex))
- return
- }
- ex, err := os.Executable()
- require.NoError(t, err)
- assert.Equal(t, filepath.Dir(ex), filepath.Dir(got))
- assert.Contains(t, []string{"config.yaml", "config.yml"}, filepath.Base(got))
- }
|