github.com/khulnasoft/cli@v0.0.0-20240402070845-01bcad7beefa/e2e/trust/revoke_test.go (about) 1 package trust 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/khulnasoft/cli/e2e/internal/fixtures" 8 "github.com/khulnasoft/cli/internal/test/environment" 9 "gotest.tools/v3/assert" 10 is "gotest.tools/v3/assert/cmp" 11 "gotest.tools/v3/fs" 12 "gotest.tools/v3/icmd" 13 "gotest.tools/v3/skip" 14 ) 15 16 const ( 17 revokeImage = "registry:5000/revoke:v1" 18 revokeRepo = "registry:5000/revokerepo" 19 ) 20 21 func TestRevokeImage(t *testing.T) { 22 skip.If(t, environment.RemoteDaemon()) 23 24 dir := fixtures.SetupConfigFile(t) 25 defer dir.Remove() 26 setupTrustedImagesForRevoke(t, dir) 27 result := icmd.RunCmd( 28 icmd.Command("docker", "trust", "revoke", revokeImage), 29 fixtures.WithPassphrase("root_password", "repo_password"), 30 fixtures.WithNotary, fixtures.WithConfig(dir.Path())) 31 result.Assert(t, icmd.Success) 32 assert.Check(t, is.Contains(result.Stdout(), "Successfully deleted signature for registry:5000/revoke:v1")) 33 } 34 35 func TestRevokeRepo(t *testing.T) { 36 skip.If(t, environment.RemoteDaemon()) 37 38 dir := fixtures.SetupConfigFile(t) 39 defer dir.Remove() 40 setupTrustedImagesForRevokeRepo(t, dir) 41 result := icmd.RunCmd( 42 icmd.Command("docker", "trust", "revoke", revokeRepo, "-y"), 43 fixtures.WithPassphrase("root_password", "repo_password"), 44 fixtures.WithNotary, fixtures.WithConfig(dir.Path())) 45 result.Assert(t, icmd.Success) 46 assert.Check(t, is.Contains(result.Stdout(), "Successfully deleted signature for registry:5000/revoke")) 47 } 48 49 func setupTrustedImagesForRevoke(t *testing.T, dir fs.Dir) { 50 t.Helper() 51 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.AlpineImage)).Assert(t, icmd.Success) 52 icmd.RunCommand("docker", "tag", fixtures.AlpineImage, revokeImage).Assert(t, icmd.Success) 53 icmd.RunCmd( 54 icmd.Command("docker", "-D", "trust", "sign", revokeImage), 55 fixtures.WithPassphrase("root_password", "repo_password"), 56 fixtures.WithConfig(dir.Path()), fixtures.WithNotary).Assert(t, icmd.Success) 57 } 58 59 func setupTrustedImagesForRevokeRepo(t *testing.T, dir fs.Dir) { 60 t.Helper() 61 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.AlpineImage)).Assert(t, icmd.Success) 62 icmd.RunCommand("docker", "tag", fixtures.AlpineImage, fmt.Sprintf("%s:v1", revokeRepo)).Assert(t, icmd.Success) 63 icmd.RunCmd( 64 icmd.Command("docker", "-D", "trust", "sign", fmt.Sprintf("%s:v1", revokeRepo)), 65 fixtures.WithPassphrase("root_password", "repo_password"), 66 fixtures.WithConfig(dir.Path()), fixtures.WithNotary).Assert(t, icmd.Success) 67 icmd.RunCmd(icmd.Command("docker", "pull", fixtures.BusyboxImage)).Assert(t, icmd.Success) 68 icmd.RunCommand("docker", "tag", fixtures.BusyboxImage, fmt.Sprintf("%s:v2", revokeRepo)).Assert(t, icmd.Success) 69 icmd.RunCmd( 70 icmd.Command("docker", "-D", "trust", "sign", fmt.Sprintf("%s:v2", revokeRepo)), 71 fixtures.WithPassphrase("root_password", "repo_password"), 72 fixtures.WithConfig(dir.Path()), fixtures.WithNotary).Assert(t, icmd.Success) 73 }