github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/e2e/cli-plugins/util_test.go (about) 1 package cliplugins 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 8 "github.com/khulnasoft/cli/cli/config" 9 "github.com/khulnasoft/cli/cli/config/configfile" 10 "gotest.tools/v3/assert" 11 "gotest.tools/v3/fs" 12 "gotest.tools/v3/icmd" 13 ) 14 15 func prepare(t *testing.T) (func(args ...string) icmd.Cmd, *configfile.ConfigFile, func()) { 16 t.Helper() 17 cfg := fs.NewDir(t, "plugin-test", 18 fs.WithFile("config.json", fmt.Sprintf(`{"cliPluginsExtraDirs": [%q]}`, os.Getenv("DOCKER_CLI_E2E_PLUGINS_EXTRA_DIRS"))), 19 ) 20 run := func(args ...string) icmd.Cmd { 21 return icmd.Command("docker", append([]string{"--config", cfg.Path()}, args...)...) 22 } 23 cleanup := func() { 24 cfg.Remove() 25 } 26 cfgfile, err := config.Load(cfg.Path()) 27 assert.NilError(t, err) 28 29 return run, cfgfile, cleanup 30 }