package cliplugins import ( "fmt" "os" "testing" "github.com/docker/cli/cli/config" "github.com/docker/cli/cli/config/configfile" "gotest.tools/v3/assert" "gotest.tools/v3/fs" "gotest.tools/v3/icmd" ) func prepare(t *testing.T) (func(args ...string) icmd.Cmd, *configfile.ConfigFile, func()) { t.Helper() cfg := fs.NewDir(t, "plugin-test", fs.WithFile("config.json", fmt.Sprintf(`{"cliPluginsExtraDirs": [%q]}`, os.Getenv("DOCKER_CLI_E2E_PLUGINS_EXTRA_DIRS"))), ) run := func(args ...string) icmd.Cmd { return icmd.Command("docker", append([]string{"--config", cfg.Path()}, args...)...) } cleanup := func() { cfg.Remove() } cfgfile, err := config.Load(cfg.Path()) assert.NilError(t, err) return run, cfgfile, cleanup }