| 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 |
| } |