Skip to content

Commit b7ea06f

Browse files
committed
refactor
1 parent 3b75b37 commit b7ea06f

File tree

5 files changed

+74
-31
lines changed

5 files changed

+74
-31
lines changed

apptrust/commands/version/release_app_version_cmd.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ func (rv *releaseAppVersionCommand) buildRequestPayload(ctx *components.Context)
106106
validatedPromotionType = model.PromotionTypeDryRun
107107
}
108108

109-
return &model.ReleaseAppVersionRequest{
110-
PromotionType: validatedPromotionType,
111-
IncludedRepositoryKeys: includedRepos,
112-
ExcludedRepositoryKeys: excludedRepos,
113-
ArtifactAdditionalProperties: artifactProps,
114-
}, nil
109+
return model.NewReleaseAppVersionRequest(
110+
validatedPromotionType,
111+
includedRepos,
112+
excludedRepos,
113+
artifactProps,
114+
), nil
115115
}
116116

117117
func GetReleaseAppVersionCommand(appContext app.Context) components.Command {

apptrust/commands/version/release_app_version_cmd_test.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,12 @@ func TestReleaseAppVersionCommand_Run(t *testing.T) {
3737
serverDetails := &config.ServerDetails{Url: "https://example.com"}
3838
applicationKey := "app-key"
3939
version := "1.0.0"
40-
requestPayload := &model.ReleaseAppVersionRequest{
41-
PromotionType: model.PromotionTypeCopy,
42-
}
40+
requestPayload := model.NewReleaseAppVersionRequest(
41+
model.PromotionTypeCopy,
42+
nil, // includedRepos
43+
nil, // excludedRepos
44+
nil, // artifactProps
45+
)
4346

4447
mockVersionService := mockversions.NewMockVersionService(ctrl)
4548
mockVersionService.EXPECT().ReleaseAppVersion(gomock.Any(), applicationKey, version, requestPayload, tt.sync).
@@ -83,9 +86,12 @@ func TestReleaseAppVersionCommand_Run_Error(t *testing.T) {
8386
serverDetails := &config.ServerDetails{Url: "https://example.com"}
8487
applicationKey := "app-key"
8588
version := "1.0.0"
86-
requestPayload := &model.ReleaseAppVersionRequest{
87-
PromotionType: model.PromotionTypeCopy,
88-
}
89+
requestPayload := model.NewReleaseAppVersionRequest(
90+
model.PromotionTypeCopy,
91+
nil, // includedRepos
92+
nil, // excludedRepos
93+
nil, // artifactProps
94+
)
8995
expectedError := errors.New("service error occurred")
9096

9197
mockVersionService := mockversions.NewMockVersionService(ctrl)

apptrust/model/release_app_version_request.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ func NewReleaseAppVersionRequest(
1212
promotionType string,
1313
includedRepositoryKeys []string,
1414
excludedRepositoryKeys []string,
15-
artifactProperties map[string]string) *ReleaseAppVersionRequest {
15+
artifactProperties map[string]string,
16+
) *ReleaseAppVersionRequest {
1617

1718
return &ReleaseAppVersionRequest{
1819
PromoteAppVersionRequest: PromoteAppVersionRequest{
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package model
2+
3+
import (
4+
"testing"
5+
6+
"github.com/stretchr/testify/assert"
7+
)
8+
9+
func TestNewReleaseAppVersionRequest(t *testing.T) {
10+
// Test data
11+
promotionType := PromotionTypeCopy
12+
includedRepos := []string{"repo1", "repo2"}
13+
excludedRepos := []string{"repo3"}
14+
props := map[string]string{"key1": "value1", "key2": "value2"}
15+
16+
// Create request using constructor
17+
request := NewReleaseAppVersionRequest(
18+
promotionType,
19+
includedRepos,
20+
excludedRepos,
21+
props,
22+
)
23+
24+
// Verify fields
25+
assert.Equal(t, ReleaseStage, request.Stage)
26+
assert.Equal(t, promotionType, request.PromotionType)
27+
assert.Equal(t, includedRepos, request.IncludedRepositoryKeys)
28+
assert.Equal(t, excludedRepos, request.ExcludedRepositoryKeys)
29+
assert.Equal(t, props, request.ArtifactAdditionalProperties)
30+
}

apptrust/service/versions/version_service_test.go

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -200,12 +200,12 @@ func TestReleaseAppVersion(t *testing.T) {
200200
name: "success with sync=true",
201201
applicationKey: "test-app",
202202
version: "1.0.0",
203-
payload: &model.ReleaseAppVersionRequest{
204-
PromotionType: model.PromotionTypeCopy,
205-
IncludedRepositoryKeys: []string{"repo1", "repo2"},
206-
ExcludedRepositoryKeys: []string{"repo3"},
207-
ArtifactAdditionalProperties: map[string]string{"key1": "value1"},
208-
},
203+
payload: model.NewReleaseAppVersionRequest(
204+
model.PromotionTypeCopy,
205+
[]string{"repo1", "repo2"},
206+
[]string{"repo3"},
207+
map[string]string{"key1": "value1"},
208+
),
209209
sync: true,
210210
expectedEndpoint: "/v1/applications/test-app/versions/1.0.0/release",
211211
mockResponse: &http.Response{StatusCode: 200},
@@ -217,12 +217,12 @@ func TestReleaseAppVersion(t *testing.T) {
217217
name: "success with sync=false",
218218
applicationKey: "test-app",
219219
version: "1.0.0",
220-
payload: &model.ReleaseAppVersionRequest{
221-
PromotionType: model.PromotionTypeCopy,
222-
IncludedRepositoryKeys: []string{"repo1", "repo2"},
223-
ExcludedRepositoryKeys: []string{"repo3"},
224-
ArtifactAdditionalProperties: map[string]string{"key1": "value1"},
225-
},
220+
payload: model.NewReleaseAppVersionRequest(
221+
model.PromotionTypeCopy,
222+
[]string{"repo1", "repo2"},
223+
[]string{"repo3"},
224+
map[string]string{"key1": "value1"},
225+
),
226226
sync: false,
227227
expectedEndpoint: "/v1/applications/test-app/versions/1.0.0/release",
228228
mockResponse: &http.Response{StatusCode: 202},
@@ -234,9 +234,12 @@ func TestReleaseAppVersion(t *testing.T) {
234234
name: "failure",
235235
applicationKey: "test-app",
236236
version: "1.0.0",
237-
payload: &model.ReleaseAppVersionRequest{
238-
PromotionType: model.PromotionTypeCopy,
239-
},
237+
payload: model.NewReleaseAppVersionRequest(
238+
model.PromotionTypeCopy,
239+
nil,
240+
nil,
241+
nil,
242+
),
240243
sync: true,
241244
expectedEndpoint: "/v1/applications/test-app/versions/1.0.0/release",
242245
mockResponse: &http.Response{StatusCode: 400},
@@ -248,9 +251,12 @@ func TestReleaseAppVersion(t *testing.T) {
248251
name: "http client error",
249252
applicationKey: "test-app",
250253
version: "1.0.0",
251-
payload: &model.ReleaseAppVersionRequest{
252-
PromotionType: model.PromotionTypeCopy,
253-
},
254+
payload: model.NewReleaseAppVersionRequest(
255+
model.PromotionTypeCopy,
256+
nil,
257+
nil,
258+
nil,
259+
),
254260
sync: false,
255261
expectedEndpoint: "/v1/applications/test-app/versions/1.0.0/release",
256262
mockResponse: nil,

0 commit comments

Comments
 (0)