github.com/coincircle/mattermost-server@v4.8.1-0.20180321182714-9d701c704416+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  	"github.com/mattermost/mattermost-server/cmd"
    15  	"github.com/mattermost/mattermost-server/utils"
    16  )
    17  
    18  func TestConfigFlag(t *testing.T) {
    19  	dir, err := ioutil.TempDir("", "")
    20  	require.NoError(t, err)
    21  	defer os.RemoveAll(dir)
    22  
    23  	utils.TranslationsPreInit()
    24  	config, _, err := utils.LoadConfig("config.json")
    25  	require.Nil(t, err)
    26  	configPath := filepath.Join(dir, "foo.json")
    27  	require.NoError(t, ioutil.WriteFile(configPath, []byte(config.ToJson()), 0600))
    28  
    29  	i18n, ok := utils.FindDir("i18n")
    30  	require.True(t, ok)
    31  	require.NoError(t, utils.CopyDir(i18n, filepath.Join(dir, "i18n")))
    32  
    33  	prevDir, err := os.Getwd()
    34  	require.NoError(t, err)
    35  	defer os.Chdir(prevDir)
    36  	os.Chdir(dir)
    37  
    38  	require.Error(t, cmd.RunCommand(t, "version"))
    39  	cmd.CheckCommand(t, "--config", "foo.json", "version")
    40  	cmd.CheckCommand(t, "--config", "./foo.json", "version")
    41  	cmd.CheckCommand(t, "--config", configPath, "version")
    42  }