| package plugin | |
| import ( | |
| "context" | |
| "fmt" | |
| "testing" | |
| "github.com/docker/cli/e2e/internal/fixtures" | |
| "github.com/docker/cli/e2e/testutils" | |
| "github.com/docker/cli/internal/test/environment" | |
| "gotest.tools/v3/icmd" | |
| "gotest.tools/v3/skip" | |
| ) | |
| const registryPrefix = "registry:5000" | |
| func TestCreatePushPull(t *testing.T) { | |
| skip.If(t, environment.SkipPluginTests()) | |
| const pluginName = registryPrefix + "/my-plugin" | |
| // TODO(thaJeztah): probably should use a config without the content trust bits. | |
| dir := fixtures.SetupConfigFile(t) | |
| defer dir.Remove() | |
| ctx, cancel := context.WithCancel(context.Background()) | |
| t.Cleanup(cancel) | |
| pluginDir := testutils.SetupPlugin(t, ctx) | |
| icmd.RunCommand("docker", "plugin", "create", pluginName, pluginDir).Assert(t, icmd.Success) | |
| result := icmd.RunCmd(icmd.Command("docker", "plugin", "push", pluginName), | |
| fixtures.WithConfig(dir.Path()), | |
| ) | |
| result.Assert(t, icmd.Expected{ | |
| Out: fmt.Sprintf("The push refers to repository [%s]", pluginName), | |
| }) | |
| icmd.RunCommand("docker", "plugin", "rm", "-f", pluginName).Assert(t, icmd.Success) | |
| result = icmd.RunCmd(icmd.Command("docker", "plugin", "install", "--grant-all-permissions", pluginName), | |
| fixtures.WithConfig(dir.Path()), | |
| ) | |
| result.Assert(t, icmd.Expected{ | |
| Out: "Installed plugin " + pluginName, | |
| }) | |
| } | |
| func TestInstall(t *testing.T) { | |
| skip.If(t, environment.SkipPluginTests()) | |
| const pluginName = "tiborvass/sample-volume-plugin:latest" | |
| result := icmd.RunCmd(icmd.Command("docker", "plugin", "install", "--grant-all-permissions", pluginName)) | |
| result.Assert(t, icmd.Expected{ | |
| Out: "Installed plugin " + pluginName, | |
| }) | |
| } |