From 7bfd5454e55fac484842255b86e5b908e2f37047 Mon Sep 17 00:00:00 2001 From: Alexander Dahmen Date: Tue, 13 May 2025 16:21:02 +0200 Subject: [PATCH] fix(postgresql): Display correct error message when project id is not set Signed-off-by: Alexander Dahmen --- internal/cmd/postgresflex/options/options.go | 4 +++ .../cmd/postgresflex/options/options_test.go | 35 ++++++++++++------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/internal/cmd/postgresflex/options/options.go b/internal/cmd/postgresflex/options/options.go index 66535e387..8a3bd6287 100644 --- a/internal/cmd/postgresflex/options/options.go +++ b/internal/cmd/postgresflex/options/options.go @@ -10,6 +10,7 @@ import ( "github.com/goccy/go-yaml" "github.com/spf13/cobra" "github.com/stackitcloud/stackit-cli/internal/pkg/args" + cliErr "github.com/stackitcloud/stackit-cli/internal/pkg/errors" "github.com/stackitcloud/stackit-cli/internal/pkg/examples" "github.com/stackitcloud/stackit-cli/internal/pkg/flags" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" @@ -99,6 +100,9 @@ func configureFlags(cmd *cobra.Command) { func parseInput(p *print.Printer, cmd *cobra.Command) (*inputModel, error) { globalFlags := globalflags.Parse(p, cmd) + if globalFlags.ProjectId == "" { + return nil, &cliErr.ProjectIdError{} + } flavors := flags.FlagToBoolValue(p, cmd, flavorsFlag) versions := flags.FlagToBoolValue(p, cmd, versionsFlag) storages := flags.FlagToBoolValue(p, cmd, storagesFlag) diff --git a/internal/cmd/postgresflex/options/options_test.go b/internal/cmd/postgresflex/options/options_test.go index 7643dad69..54df1ccf9 100644 --- a/internal/cmd/postgresflex/options/options_test.go +++ b/internal/cmd/postgresflex/options/options_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" + "github.com/google/uuid" "github.com/stackitcloud/stackit-cli/internal/cmd/params" "github.com/stackitcloud/stackit-cli/internal/pkg/globalflags" "github.com/stackitcloud/stackit-cli/internal/pkg/print" @@ -16,6 +17,7 @@ import ( type testCtxKey struct{} var testCtx = context.WithValue(context.Background(), testCtxKey{}, "foo") +var testProjectId = uuid.NewString() type postgresFlexClientMocked struct { listFlavorsFails bool @@ -63,10 +65,11 @@ func (c *postgresFlexClientMocked) ListStoragesExecute(_ context.Context, _, _, func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]string { flagValues := map[string]string{ - flavorsFlag: "true", - versionsFlag: "true", - storagesFlag: "true", - flavorIdFlag: "2.4", + globalflags.ProjectIdFlag: testProjectId, + flavorsFlag: "true", + versionsFlag: "true", + storagesFlag: "true", + flavorIdFlag: "2.4", } for _, mod := range mods { mod(flagValues) @@ -76,10 +79,13 @@ func fixtureFlagValues(mods ...func(flagValues map[string]string)) map[string]st func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, - Flavors: false, - Versions: false, - Storages: false, + GlobalFlagModel: &globalflags.GlobalFlagModel{ + ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, + }, + Flavors: false, + Versions: false, + Storages: false, } for _, mod := range mods { mod(model) @@ -89,11 +95,14 @@ func fixtureInputModelAllFalse(mods ...func(model *inputModel)) *inputModel { func fixtureInputModelAllTrue(mods ...func(model *inputModel)) *inputModel { model := &inputModel{ - GlobalFlagModel: &globalflags.GlobalFlagModel{Verbosity: globalflags.VerbosityDefault}, - Flavors: true, - Versions: true, - Storages: true, - FlavorId: utils.Ptr("2.4"), + GlobalFlagModel: &globalflags.GlobalFlagModel{ + ProjectId: testProjectId, + Verbosity: globalflags.VerbosityDefault, + }, + Flavors: true, + Versions: true, + Storages: true, + FlavorId: utils.Ptr("2.4"), } for _, mod := range mods { mod(model)