Skip to content

Commit bc93550

Browse files
committed
CR
1 parent 9ef3fe3 commit bc93550

File tree

4 files changed

+31
-128
lines changed

4 files changed

+31
-128
lines changed

apptrust/commands/version/promote_app_version_cmd_test.go

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"errors"
55
"testing"
66

7-
"github.com/jfrog/jfrog-cli-application/apptrust/commands"
87
mockversions "github.com/jfrog/jfrog-cli-application/apptrust/service/versions/mocks"
98
"go.uber.org/mock/gomock"
109

@@ -69,11 +68,10 @@ func TestPromoteAppVersionCommand_Run_Error(t *testing.T) {
6968
requestPayload := &model.PromoteAppVersionRequest{
7069
Stage: "prod",
7170
}
72-
sync := true
7371
expectedError := errors.New("service error occurred")
7472

7573
mockVersionService := mockversions.NewMockVersionService(ctrl)
76-
mockVersionService.EXPECT().PromoteAppVersion(gomock.Any(), applicationKey, version, requestPayload, sync).
74+
mockVersionService.EXPECT().PromoteAppVersion(gomock.Any(), applicationKey, version, requestPayload, false).
7775
Return(expectedError).Times(1)
7876

7977
cmd := &promoteAppVersionCommand{
@@ -82,32 +80,10 @@ func TestPromoteAppVersionCommand_Run_Error(t *testing.T) {
8280
applicationKey: applicationKey,
8381
version: version,
8482
requestPayload: requestPayload,
85-
sync: sync,
83+
sync: false,
8684
}
8785

8886
err := cmd.Run()
8987
assert.Error(t, err)
9088
assert.Contains(t, err.Error(), "service error occurred")
9189
}
92-
93-
func TestPromoteAppVersionCommand_ServerDetails(t *testing.T) {
94-
ctrl := gomock.NewController(t)
95-
defer ctrl.Finish()
96-
97-
serverDetails := &config.ServerDetails{}
98-
cmd := &promoteAppVersionCommand{
99-
serverDetails: serverDetails,
100-
}
101-
102-
details, err := cmd.ServerDetails()
103-
assert.NoError(t, err)
104-
assert.Equal(t, serverDetails, details)
105-
}
106-
107-
func TestPromoteAppVersionCommand_CommandName(t *testing.T) {
108-
ctrl := gomock.NewController(t)
109-
defer ctrl.Finish()
110-
111-
cmd := &promoteAppVersionCommand{}
112-
assert.Equal(t, commands.VersionPromote, cmd.CommandName())
113-
}

apptrust/commands/version/release_app_version_cmd_test.go

Lines changed: 27 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"testing"
66

77
"github.com/jfrog/jfrog-cli-application/apptrust/commands"
8-
"github.com/jfrog/jfrog-cli-application/apptrust/commands/utils"
98
mockversions "github.com/jfrog/jfrog-cli-application/apptrust/service/versions/mocks"
109
"go.uber.org/mock/gomock"
1110

@@ -64,54 +63,36 @@ func TestReleaseAppVersionCommand_Run(t *testing.T) {
6463
}
6564

6665
func TestReleaseAppVersionCommand_Run_Error(t *testing.T) {
67-
tests := []struct {
68-
name string
69-
sync bool
70-
}{
71-
{
72-
name: "sync flag true - error",
73-
sync: true,
74-
},
75-
{
76-
name: "sync flag false - error",
77-
sync: false,
78-
},
79-
}
80-
81-
for _, tt := range tests {
82-
t.Run(tt.name, func(t *testing.T) {
83-
ctrl := gomock.NewController(t)
84-
defer ctrl.Finish()
85-
86-
serverDetails := &config.ServerDetails{Url: "https://example.com"}
87-
applicationKey := "app-key"
88-
version := "1.0.0"
89-
requestPayload := model.NewReleaseAppVersionRequest(
90-
model.PromotionTypeCopy,
91-
nil, // includedRepos
92-
nil, // excludedRepos
93-
nil, // artifactProps
94-
)
95-
expectedError := errors.New("service error occurred")
96-
97-
mockVersionService := mockversions.NewMockVersionService(ctrl)
98-
mockVersionService.EXPECT().ReleaseAppVersion(gomock.Any(), applicationKey, version, requestPayload, tt.sync).
99-
Return(expectedError).Times(1)
66+
ctrl := gomock.NewController(t)
67+
defer ctrl.Finish()
10068

101-
cmd := &releaseAppVersionCommand{
102-
versionService: mockVersionService,
103-
serverDetails: serverDetails,
104-
applicationKey: applicationKey,
105-
version: version,
106-
requestPayload: requestPayload,
107-
sync: tt.sync,
108-
}
69+
serverDetails := &config.ServerDetails{Url: "https://example.com"}
70+
applicationKey := "app-key"
71+
version := "1.0.0"
72+
requestPayload := model.NewReleaseAppVersionRequest(
73+
model.PromotionTypeCopy,
74+
nil, // includedRepos
75+
nil, // excludedRepos
76+
nil, // artifactProps
77+
)
78+
expectedError := errors.New("service error occurred")
79+
80+
mockVersionService := mockversions.NewMockVersionService(ctrl)
81+
mockVersionService.EXPECT().ReleaseAppVersion(gomock.Any(), applicationKey, version, requestPayload, false).
82+
Return(expectedError).Times(1)
10983

110-
err := cmd.Run()
111-
assert.Error(t, err)
112-
assert.Contains(t, err.Error(), "service error occurred")
113-
})
84+
cmd := &releaseAppVersionCommand{
85+
versionService: mockVersionService,
86+
serverDetails: serverDetails,
87+
applicationKey: applicationKey,
88+
version: version,
89+
requestPayload: requestPayload,
90+
sync: false,
11491
}
92+
93+
err := cmd.Run()
94+
assert.Error(t, err)
95+
assert.Contains(t, err.Error(), "service error occurred")
11596
}
11697

11798
func TestReleaseAppVersionCommand_ServerDetails(t *testing.T) {
@@ -135,52 +116,3 @@ func TestReleaseAppVersionCommand_CommandName(t *testing.T) {
135116
cmd := &releaseAppVersionCommand{}
136117
assert.Equal(t, commands.VersionRelease, cmd.CommandName())
137118
}
138-
139-
func TestReleaseAppVersionCommand_BuildRequestPayload(t *testing.T) {
140-
// Test the key validation logic used in buildRequestPayload
141-
t.Run("validation test", func(t *testing.T) {
142-
// Let's define the actual allowed values for promotion type
143-
allowedValues := []string{model.PromotionTypeCopy, model.PromotionTypeMove}
144-
145-
// Case 1: Empty string should return the default value
146-
result1, err1 := utils.ValidateEnumFlag(
147-
"test-flag",
148-
"",
149-
model.PromotionTypeCopy,
150-
allowedValues)
151-
152-
assert.NoError(t, err1)
153-
assert.Equal(t, model.PromotionTypeCopy, result1)
154-
155-
// Case 2: Valid value should be returned as is
156-
result2, err2 := utils.ValidateEnumFlag(
157-
"test-flag",
158-
model.PromotionTypeMove,
159-
model.PromotionTypeCopy,
160-
allowedValues)
161-
162-
assert.NoError(t, err2)
163-
assert.Equal(t, model.PromotionTypeMove, result2)
164-
165-
// Case 3: Invalid value should return an error
166-
result3, err3 := utils.ValidateEnumFlag(
167-
"test-flag",
168-
"invalid-type",
169-
model.PromotionTypeCopy,
170-
allowedValues)
171-
172-
assert.Error(t, err3)
173-
assert.Equal(t, "", result3) // On error, the result is empty
174-
assert.Contains(t, err3.Error(), "invalid value")
175-
})
176-
177-
t.Run("property parsing test", func(t *testing.T) {
178-
// Test property parsing behavior
179-
props, err := utils.ParseMapFlag("key1=value1;key2=value2")
180-
assert.NoError(t, err)
181-
assert.Equal(t, map[string]string{"key1": "value1", "key2": "value2"}, props)
182-
183-
_, err = utils.ParseMapFlag("invalid-format")
184-
assert.Error(t, err)
185-
})
186-
}

apptrust/commands/version/version_utils.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,9 @@ func BuildPromotionParams(ctx *components.Context) (string, []string, []string,
2222
excludedRepos = utils.ParseSliceFlag(excludeReposStr)
2323
}
2424

25-
// Validate promotion type flag
2625
promotionType := ctx.GetStringFlagValue(commands.PromotionTypeFlag)
2726

28-
// For validation, we need to add the dry_run option
29-
allowedValues := append([]string{}, model.PromotionTypeValues...)
30-
allowedValues = append(allowedValues, model.PromotionTypeDryRun)
31-
32-
validatedPromotionType, err := utils.ValidateEnumFlag(commands.PromotionTypeFlag, promotionType, model.PromotionTypeCopy, allowedValues)
27+
validatedPromotionType, err := utils.ValidateEnumFlag(commands.PromotionTypeFlag, promotionType, model.PromotionTypeCopy, model.PromotionTypeValues)
3328
if err != nil {
3429
return "", nil, nil, err
3530
}

apptrust/model/release_app_version_request.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package model
22

33
const (
4-
ReleaseStage = "RELEASE"
4+
ReleaseStage = "PROD"
55
)
66

77
type ReleaseAppVersionRequest struct {

0 commit comments

Comments
 (0)