summaryrefslogtreecommitdiffstats
path: root/utils/config_test.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2018-05-29 13:21:42 -0700
committerGitHub <noreply@github.com>2018-05-29 13:21:42 -0700
commit2f6039f23f75ef0d63f980c8354d3d638071f230 (patch)
treee258e996c7fff2e269ddd65cb8c76539482bca04 /utils/config_test.go
parentd3cf110620033f8831a55a3fd911d7864b6aab4a (diff)
downloadchat-2f6039f23f75ef0d63f980c8354d3d638071f230.tar.gz
chat-2f6039f23f75ef0d63f980c8354d3d638071f230.tar.bz2
chat-2f6039f23f75ef0d63f980c8354d3d638071f230.zip
Revert "MM-6839: search relative to executable (#8853)" (#8876)
This reverts commit d3cf110620033f8831a55a3fd911d7864b6aab4a.
Diffstat (limited to 'utils/config_test.go')
-rw-r--r--utils/config_test.go174
1 files changed, 11 insertions, 163 deletions
diff --git a/utils/config_test.go b/utils/config_test.go
index f57add303..75bbc420f 100644
--- a/utils/config_test.go
+++ b/utils/config_test.go
@@ -46,172 +46,20 @@ func TestTimezoneConfig(t *testing.T) {
}
func TestFindConfigFile(t *testing.T) {
- t.Run("config.json in current working directory, not inside config/", func(t *testing.T) {
- // Force a unique working directory
- cwd, err := ioutil.TempDir("", "")
- require.NoError(t, err)
- defer os.RemoveAll(cwd)
-
- prevDir, err := os.Getwd()
- require.NoError(t, err)
- defer os.Chdir(prevDir)
- os.Chdir(cwd)
-
- configJson, err := filepath.Abs("config.json")
- require.NoError(t, err)
- require.NoError(t, ioutil.WriteFile(configJson, []byte("{}"), 0600))
-
- // Relative paths end up getting symlinks fully resolved.
- configJsonResolved, err := filepath.EvalSymlinks(configJson)
- require.NoError(t, err)
-
- assert.Equal(t, configJsonResolved, FindConfigFile("config.json"))
- })
+ dir, err := ioutil.TempDir("", "")
+ require.NoError(t, err)
+ defer os.RemoveAll(dir)
- t.Run("config/config.json from various paths", func(t *testing.T) {
- // Create the following directory structure:
- // tmpDir1/
- // config/
- // config.json
- // tmpDir2/
- // tmpDir3/
- // tmpDir4/
- // tmpDir5/
- tmpDir1, err := ioutil.TempDir("", "")
- require.NoError(t, err)
- defer os.RemoveAll(tmpDir1)
-
- err = os.Mkdir(filepath.Join(tmpDir1, "config"), 0700)
- require.NoError(t, err)
-
- tmpDir2, err := ioutil.TempDir(tmpDir1, "")
- require.NoError(t, err)
-
- tmpDir3, err := ioutil.TempDir(tmpDir2, "")
- require.NoError(t, err)
-
- tmpDir4, err := ioutil.TempDir(tmpDir3, "")
- require.NoError(t, err)
-
- tmpDir5, err := ioutil.TempDir(tmpDir4, "")
- require.NoError(t, err)
-
- configJson := filepath.Join(tmpDir1, "config", "config.json")
- require.NoError(t, ioutil.WriteFile(configJson, []byte("{}"), 0600))
-
- // Relative paths end up getting symlinks fully resolved, so use this below as necessary.
- configJsonResolved, err := filepath.EvalSymlinks(configJson)
- require.NoError(t, err)
-
- testCases := []struct {
- Description string
- Cwd *string
- FileName string
- Expected string
- }{
- {
- "absolute path to config.json",
- nil,
- configJson,
- configJson,
- },
- {
- "absolute path to config.json from directory containing config.json",
- &tmpDir1,
- configJson,
- configJson,
- },
- {
- "relative path to config.json from directory containing config.json",
- &tmpDir1,
- "config.json",
- configJsonResolved,
- },
- {
- "subdirectory of directory containing config.json",
- &tmpDir2,
- "config.json",
- configJsonResolved,
- },
- {
- "twice-nested subdirectory of directory containing config.json",
- &tmpDir3,
- "config.json",
- configJsonResolved,
- },
- {
- "thrice-nested subdirectory of directory containing config.json",
- &tmpDir4,
- "config.json",
- configJsonResolved,
- },
- {
- "can't find from four nesting levels deep",
- &tmpDir5,
- "config.json",
- "",
- },
- }
+ path := filepath.Join(dir, "config.json")
+ require.NoError(t, ioutil.WriteFile(path, []byte("{}"), 0600))
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- if testCase.Cwd != nil {
- prevDir, err := os.Getwd()
- require.NoError(t, err)
- defer os.Chdir(prevDir)
- os.Chdir(*testCase.Cwd)
- }
-
- assert.Equal(t, testCase.Expected, FindConfigFile(testCase.FileName))
- })
- }
- })
-
- t.Run("config/config.json relative to executable", func(t *testing.T) {
- osExecutable, err := os.Executable()
- require.NoError(t, err)
- osExecutableDir := filepath.Dir(osExecutable)
-
- // Force a working directory different than the executable.
- cwd, err := ioutil.TempDir("", "")
- require.NoError(t, err)
- defer os.RemoveAll(cwd)
-
- prevDir, err := os.Getwd()
- require.NoError(t, err)
- defer os.Chdir(prevDir)
- os.Chdir(cwd)
-
- testCases := []struct {
- Description string
- RelativePath string
- }{
- {
- "config/config.json",
- ".",
- },
- {
- "../config/config.json",
- "../",
- },
- }
+ assert.Equal(t, path, FindConfigFile(path))
- for _, testCase := range testCases {
- t.Run(testCase.Description, func(t *testing.T) {
- // Install the config in config/config.json relative to the executable
- configJson := filepath.Join(osExecutableDir, testCase.RelativePath, "config", "config.json")
- require.NoError(t, os.Mkdir(filepath.Dir(configJson), 0700))
- require.NoError(t, ioutil.WriteFile(configJson, []byte("{}"), 0600))
- defer os.RemoveAll(filepath.Dir(configJson))
-
- // Relative paths end up getting symlinks fully resolved.
- configJsonResolved, err := filepath.EvalSymlinks(configJson)
- require.NoError(t, err)
-
- assert.Equal(t, configJsonResolved, FindConfigFile("config.json"))
- })
- }
- })
+ prevDir, err := os.Getwd()
+ require.NoError(t, err)
+ defer os.Chdir(prevDir)
+ os.Chdir(dir)
+ assert.Equal(t, path, FindConfigFile(path))
}
func TestConfigFromEnviroVars(t *testing.T) {