mirror of https://github.com/portainer/portainer
66 lines
2.0 KiB
Go
66 lines
2.0 KiB
Go
package sdk
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/portainer/portainer/pkg/libhelm/options"
|
|
"github.com/portainer/portainer/pkg/libhelm/test"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_Uninstall(t *testing.T) {
|
|
test.EnsureIntegrationTest(t)
|
|
is := assert.New(t)
|
|
|
|
// Create a new SDK package manager
|
|
hspm := NewHelmSDKPackageManager()
|
|
|
|
t.Run("uninstall requires a release name", func(t *testing.T) {
|
|
// Try to uninstall without a release name
|
|
uninstallOpts := options.UninstallOptions{
|
|
Name: "",
|
|
}
|
|
err := hspm.Uninstall(uninstallOpts)
|
|
is.Error(err, "should return error when release name is empty")
|
|
is.Contains(err.Error(), "release name is required", "error message should indicate release name is required")
|
|
})
|
|
|
|
t.Run("uninstall a non-existent release", func(t *testing.T) {
|
|
// Try to uninstall a release that doesn't exist
|
|
uninstallOpts := options.UninstallOptions{
|
|
Name: "non-existent-release",
|
|
}
|
|
err := hspm.Uninstall(uninstallOpts)
|
|
|
|
// The function should not fail by design, even when not running in a k8s environment
|
|
// However, it should return an error for a non-existent release
|
|
is.Error(err, "should return error when release doesn't exist")
|
|
is.Contains(err.Error(), "not found", "error message should indicate release not found")
|
|
})
|
|
|
|
// This test is commented out as it requires a real release to be installed first
|
|
t.Run("successfully uninstall an existing release", func(t *testing.T) {
|
|
// First install a release
|
|
installOpts := options.InstallOptions{
|
|
Name: "test-uninstall",
|
|
Chart: "nginx",
|
|
Repo: "https://kubernetes.github.io/ingress-nginx",
|
|
}
|
|
|
|
// Install the release
|
|
_, err := hspm.Upgrade(installOpts)
|
|
if err != nil {
|
|
t.Logf("Error installing release: %v", err)
|
|
t.Skip("Skipping uninstall test because install failed")
|
|
return
|
|
}
|
|
|
|
// Now uninstall it
|
|
uninstallOpts := options.UninstallOptions{
|
|
Name: "test-uninstall",
|
|
}
|
|
err = hspm.Uninstall(uninstallOpts)
|
|
is.NoError(err, "should successfully uninstall release")
|
|
})
|
|
}
|