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  }