github.com/spline-fu/mattermost-server@v4.10.10+incompatible/cmd/commands/config_flag_test.go (about) 1 // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. 2 // See License.txt for license information. 3 4 package commands 5 6 import ( 7 "io/ioutil" 8 "os" 9 "path/filepath" 10 "testing" 11 12 "github.com/stretchr/testify/require" 13 14 "encoding/json" 15 16 "github.com/mattermost/mattermost-server/cmd" 17 "github.com/mattermost/mattermost-server/utils" 18 ) 19 20 func TestConfigFlag(t *testing.T) { 21 dir, err := ioutil.TempDir("", "") 22 require.NoError(t, err) 23 defer os.RemoveAll(dir) 24 25 utils.TranslationsPreInit() 26 config, _, _, err := utils.LoadConfig("config.json") 27 require.Nil(t, err) 28 configPath := filepath.Join(dir, "foo.json") 29 require.NoError(t, ioutil.WriteFile(configPath, []byte(config.ToJson()), 0600)) 30 31 timezones := utils.LoadTimezones("timezones.json") 32 tzConfigPath := filepath.Join(dir, "timezones.json") 33 timezoneData, _ := json.Marshal(timezones) 34 require.NoError(t, ioutil.WriteFile(tzConfigPath, timezoneData, 0600)) 35 36 i18n, ok := utils.FindDir("i18n") 37 require.True(t, ok) 38 require.NoError(t, utils.CopyDir(i18n, filepath.Join(dir, "i18n"))) 39 40 prevDir, err := os.Getwd() 41 require.NoError(t, err) 42 defer os.Chdir(prevDir) 43 os.Chdir(dir) 44 45 require.Error(t, cmd.RunCommand(t, "version")) 46 cmd.CheckCommand(t, "--config", "foo.json", "version") 47 cmd.CheckCommand(t, "--config", "./foo.json", "version") 48 cmd.CheckCommand(t, "--config", configPath, "version") 49 }