From c1a9ca720996010f6f0ee4b7e819b18dfae0b2b6 Mon Sep 17 00:00:00 2001 From: Manuel Vaas Date: Tue, 28 Apr 2026 12:16:16 +0200 Subject: [PATCH 1/3] fix(config): fix deletion of profiles on some systems relates to STACKITCLI-389 --- internal/cmd/config/profile/delete/delete.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/cmd/config/profile/delete/delete.go b/internal/cmd/config/profile/delete/delete.go index a81bf7888..d94f71479 100644 --- a/internal/cmd/config/profile/delete/delete.go +++ b/internal/cmd/config/profile/delete/delete.go @@ -71,14 +71,14 @@ func NewCmd(params *types.CmdParams) *cobra.Command { return err } - err = config.DeleteProfile(params.Printer, model.Profile) + err = auth.DeleteProfileAuth(model.Profile) if err != nil { - return fmt.Errorf("delete profile: %w", err) + return fmt.Errorf("delete profile authentication: %w", err) } - err = auth.DeleteProfileAuth(model.Profile) + err = config.DeleteProfile(params.Printer, model.Profile) if err != nil { - return fmt.Errorf("delete profile authentication: %w", err) + return fmt.Errorf("delete profile: %w", err) } params.Printer.Info("Successfully deleted profile %q\n", model.Profile) From 845a8e9979bba10b8666a99ada383c41b81c6b57 Mon Sep 17 00:00:00 2001 From: Manuel Vaas Date: Thu, 30 Apr 2026 14:40:41 +0200 Subject: [PATCH 2/3] add testcase --- .../cmd/config/profile/delete/delete_test.go | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/internal/cmd/config/profile/delete/delete_test.go b/internal/cmd/config/profile/delete/delete_test.go index 2ca839f58..d7e72f834 100644 --- a/internal/cmd/config/profile/delete/delete_test.go +++ b/internal/cmd/config/profile/delete/delete_test.go @@ -1,10 +1,16 @@ package delete import ( + "fmt" + "os" "testing" + "time" + "github.com/stackitcloud/stackit-cli/internal/pkg/config" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" + "github.com/stackitcloud/stackit-cli/internal/pkg/testparams" "github.com/stackitcloud/stackit-cli/internal/pkg/testutils" + "github.com/zalando/go-keyring" ) const testProfile = "test-profile" @@ -81,3 +87,33 @@ func TestParseInput(t *testing.T) { }) } } + +func TestDeleteProfileWithoutKeyring(t *testing.T) { + params := testparams.NewTestParams() + params.Printer.AssumeYes = true + profile := fmt.Sprintf("test-profile-%s", time.Now().Format("20060102150405")) + path := config.GetProfileFolderPath(profile) + t.Cleanup(func() { + err := os.RemoveAll(path) + if err != nil { + t.Fatalf("cleanup: remove profile folder at path %q: %v", path, err) + } + }) + err := config.ValidateProfile(profile) + if err != nil { + t.Fatalf("validate profile %q: %v", profile, err) + } + err = config.CreateProfile(params.Printer, profile, true, false, true) + if err != nil { + t.Fatalf("create profile %q: %v", profile, err) + } + keyring.MockInitWithError(keyring.ErrUnsupportedPlatform) + deleteCmd := NewCmd(params.CmdParams) + err = deleteCmd.RunE(deleteCmd, []string{profile}) + if err != nil { + t.Fatalf("run cmd: %v", err) + } + if _, err := os.Stat(path); !os.IsNotExist(err) { + t.Fatalf("expected profile folder to be deleted, but it still exists at path %q", path) + } +} From 38c5a0941a8dd72c8a68dcb691c5a05b2056eb45 Mon Sep 17 00:00:00 2001 From: Manuel Vaas Date: Thu, 30 Apr 2026 15:01:06 +0200 Subject: [PATCH 3/3] format --- internal/cmd/config/profile/delete/delete_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/cmd/config/profile/delete/delete_test.go b/internal/cmd/config/profile/delete/delete_test.go index d7e72f834..919ddb078 100644 --- a/internal/cmd/config/profile/delete/delete_test.go +++ b/internal/cmd/config/profile/delete/delete_test.go @@ -6,11 +6,12 @@ import ( "testing" "time" + "github.com/zalando/go-keyring" + "github.com/stackitcloud/stackit-cli/internal/pkg/config" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" "github.com/stackitcloud/stackit-cli/internal/pkg/testparams" "github.com/stackitcloud/stackit-cli/internal/pkg/testutils" - "github.com/zalando/go-keyring" ) const testProfile = "test-profile"