github.com/cspotcode/docker-cli@v20.10.0-rc1.0.20201201121459-3faad7acc5b8+incompatible/cli/command/context/use_test.go (about) 1 package context 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 9 "github.com/docker/cli/cli/config" 10 "github.com/docker/cli/cli/config/configfile" 11 "github.com/docker/cli/cli/context/store" 12 "gotest.tools/v3/assert" 13 ) 14 15 func TestUse(t *testing.T) { 16 configDir, err := ioutil.TempDir("", t.Name()+"config") 17 assert.NilError(t, err) 18 defer os.RemoveAll(configDir) 19 configFilePath := filepath.Join(configDir, "config.json") 20 testCfg := configfile.New(configFilePath) 21 cli, cleanup := makeFakeCli(t, withCliConfig(testCfg)) 22 defer cleanup() 23 err = RunCreate(cli, &CreateOptions{ 24 Name: "test", 25 Docker: map[string]string{}, 26 }) 27 assert.NilError(t, err) 28 assert.NilError(t, newUseCommand(cli).RunE(nil, []string{"test"})) 29 reloadedConfig, err := config.Load(configDir) 30 assert.NilError(t, err) 31 assert.Equal(t, "test", reloadedConfig.CurrentContext) 32 33 // switch back to default 34 cli.OutBuffer().Reset() 35 cli.ErrBuffer().Reset() 36 assert.NilError(t, newUseCommand(cli).RunE(nil, []string{"default"})) 37 reloadedConfig, err = config.Load(configDir) 38 assert.NilError(t, err) 39 assert.Equal(t, "", reloadedConfig.CurrentContext) 40 assert.Equal(t, "default\n", cli.OutBuffer().String()) 41 assert.Equal(t, "Current context is now \"default\"\n", cli.ErrBuffer().String()) 42 } 43 44 func TestUseNoExist(t *testing.T) { 45 cli, cleanup := makeFakeCli(t) 46 defer cleanup() 47 err := newUseCommand(cli).RunE(nil, []string{"test"}) 48 assert.Check(t, store.IsErrContextDoesNotExist(err)) 49 }