github.com/criteo/command-launcher@v0.0.0-20230407142452-fb616f546e98/internal/config/load_test.go (about) 1 package config 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func Test_shouldHaveConfigFile(t *testing.T) { 12 tmpDir := t.TempDir() 13 configFileName := "config.json" 14 15 file, err := os.Create(filepath.Join(tmpDir, configFileName)) 16 assert.Nil(t, err) 17 defer file.Close() 18 19 found := hasConfigFile(tmpDir, configFileName) 20 assert.True(t, found) 21 } 22 23 func Test_shouldNotHaveConfigFile(t *testing.T) { 24 tmpDir := t.TempDir() 25 configFileName := "config.json" 26 found := hasConfigFile(tmpDir, configFileName) 27 assert.False(t, found) 28 } 29 30 func Test_shouldNotFindLocalConfig(t *testing.T) { 31 tmpDir := t.TempDir() 32 configFileName := "config.json" 33 _, found := findLocalConfig(tmpDir, configFileName) 34 assert.False(t, found) 35 } 36 37 func Test_shouldFindLocalConfig(t *testing.T) { 38 tmpDir := t.TempDir() 39 testDir := filepath.Join(tmpDir, "a", "b", "c", "d") 40 err := os.MkdirAll(testDir, 0750) 41 assert.Nil(t, err) 42 43 // create config file in the path 44 configFileName := "config.json" 45 file, err := os.Create(filepath.Join(tmpDir, "a", configFileName)) 46 assert.Nil(t, err) 47 defer file.Close() 48 49 _, found := findLocalConfig(testDir, configFileName) 50 assert.True(t, found) 51 }