/
delete_test.go
80 lines (71 loc) · 2.17 KB
/
delete_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package porter
import (
"testing"
"github.com/cnabio/cnab-go/bundle"
"github.com/cnabio/cnab-go/claim"
"github.com/stretchr/testify/require"
)
func TestDeleteInstallation(t *testing.T) {
testcases := []struct {
name string
lastAction string
lastActionStatus string
force bool
installationRemains bool
wantError string
}{
{
name: "not yet installed",
wantError: "unable to read status for installation test: Installation does not exist",
}, {
name: "last action not uninstall; no --force",
lastAction: "install",
lastActionStatus: claim.StatusSucceeded,
installationRemains: true,
wantError: ErrUnsafeInstallationDeleteRetryForce.Error(),
}, {
name: "last action failed uninstall; no --force",
lastAction: "uninstall",
lastActionStatus: claim.StatusFailed,
installationRemains: true,
wantError: ErrUnsafeInstallationDeleteRetryForce.Error(),
}, {
name: "last action not uninstall; --force",
lastAction: "install",
lastActionStatus: claim.StatusSucceeded,
force: true,
}, {
name: "last action failed uninstall; --force",
lastAction: "uninstall",
lastActionStatus: claim.StatusFailed,
force: true,
},
}
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
p := NewTestPorter(t)
p.TestConfig.SetupPorterHome()
var err error
// Create test claim
if tc.lastAction != "" {
c := p.TestClaims.CreateClaim("test", tc.lastAction, bundle.Bundle{}, nil)
_ = p.TestClaims.CreateResult(c, tc.lastActionStatus)
}
opts := DeleteOptions{}
opts.Name = "test"
opts.Force = tc.force
err = p.DeleteInstallation(opts)
if tc.wantError != "" {
require.EqualError(t, err, tc.wantError)
} else {
require.NoError(t, err, "expected DeleteInstallation to succeed")
}
_, err = p.Claims.ReadInstallation("test")
if tc.installationRemains {
require.NoError(t, err, "expected installation to exist")
} else {
require.EqualError(t, err, "Installation does not exist")
}
})
}
}