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  }