2017-11-16 11:08:07 -06:00
|
|
|
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
|
|
|
// See License.txt for license information.
|
|
|
|
|
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"io/ioutil"
|
|
|
|
|
"os"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
|
|
|
|
|
|
"github.com/mattermost/mattermost-server/utils"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func TestConfigFlag(t *testing.T) {
|
|
|
|
|
dir, err := ioutil.TempDir("", "")
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
defer os.RemoveAll(dir)
|
|
|
|
|
|
|
|
|
|
utils.TranslationsPreInit()
|
2018-01-12 08:02:11 -06:00
|
|
|
config, _, err := utils.LoadConfig("config.json")
|
|
|
|
|
require.Nil(t, err)
|
2017-11-16 11:08:07 -06:00
|
|
|
configPath := filepath.Join(dir, "foo.json")
|
|
|
|
|
require.NoError(t, ioutil.WriteFile(configPath, []byte(config.ToJson()), 0600))
|
|
|
|
|
|
|
|
|
|
i18n, ok := utils.FindDir("i18n")
|
|
|
|
|
require.True(t, ok)
|
2017-11-17 08:27:26 -06:00
|
|
|
require.NoError(t, utils.CopyDir(i18n, filepath.Join(dir, "i18n")))
|
2017-11-16 11:08:07 -06:00
|
|
|
|
|
|
|
|
prevDir, err := os.Getwd()
|
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
defer os.Chdir(prevDir)
|
|
|
|
|
os.Chdir(dir)
|
|
|
|
|
|
|
|
|
|
require.Error(t, runCommand(t, "version"))
|
|
|
|
|
checkCommand(t, "--config", "foo.json", "version")
|
|
|
|
|
checkCommand(t, "--config", "./foo.json", "version")
|
|
|
|
|
checkCommand(t, "--config", configPath, "version")
|
|
|
|
|
}
|