Skip to content

Commit a368e92

Browse files
zmotsoSergK
authored andcommitted
feat: Add validation for gitUrlPath to ensure it does not end with a space (#236)
1 parent 643fe5b commit a368e92

File tree

2 files changed

+31
-17
lines changed

2 files changed

+31
-17
lines changed

pkg/webhook/validation.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ func IsCodebaseValid(codebase *codebaseApi.Codebase) error {
4646
return fmt.Errorf("versioning start from is required when versioning type is not default")
4747
}
4848

49+
if strings.HasSuffix(codebase.Spec.GitUrlPath, " ") {
50+
return fmt.Errorf("gitUrlPath should not end with space")
51+
}
52+
4953
return nil
5054
}
5155

pkg/webhook/validation_test.go

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
)
1212

1313
func TestIsCodebaseValid(t *testing.T) {
14-
t.Parallel()
15-
1614
type args struct {
1715
cr *codebaseApi.Codebase
1816
}
@@ -53,9 +51,8 @@ func TestIsCodebaseValid(t *testing.T) {
5351
Status: codebaseApi.CodebaseStatus{},
5452
},
5553
},
56-
want: func(t require.TestingT, err error, i ...interface{}) {
57-
require.Error(t, err)
58-
require.Contains(t, err.Error(), "provided unsupported repository strategy: test-strategy")
54+
want: func(t require.TestingT, err error, i ...any) {
55+
require.ErrorContains(t, err, "provided unsupported repository strategy: test-strategy")
5956
},
6057
},
6158
{
@@ -71,9 +68,8 @@ func TestIsCodebaseValid(t *testing.T) {
7168
Status: codebaseApi.CodebaseStatus{},
7269
},
7370
},
74-
want: func(t require.TestingT, err error, i ...interface{}) {
75-
require.Error(t, err)
76-
require.Contains(t, err.Error(), "provided unsupported language: test-lang")
71+
want: func(t require.TestingT, err error, i ...any) {
72+
require.ErrorContains(t, err, "provided unsupported language: test-lang")
7773
},
7874
},
7975
{
@@ -92,17 +88,35 @@ func TestIsCodebaseValid(t *testing.T) {
9288
Status: codebaseApi.CodebaseStatus{},
9389
},
9490
},
95-
want: func(t require.TestingT, err error, i ...interface{}) {
96-
require.Error(t, err)
97-
require.Contains(t, err.Error(), "versioning start from is required when versioning type is not default")
91+
want: func(t require.TestingT, err error, i ...any) {
92+
require.ErrorContains(t, err, "versioning start from is required when versioning type is not default")
93+
},
94+
},
95+
{
96+
name: "should fail on gitUrlPath ending with space",
97+
args: args{
98+
cr: &codebaseApi.Codebase{
99+
TypeMeta: metaV1.TypeMeta{},
100+
ObjectMeta: metaV1.ObjectMeta{},
101+
Spec: codebaseApi.CodebaseSpec{
102+
Lang: "go",
103+
Strategy: "create",
104+
GitUrlPath: "/path/to/repo ",
105+
Versioning: codebaseApi.Versioning{
106+
Type: codebaseApi.VersioningTypDefault,
107+
},
108+
},
109+
Status: codebaseApi.CodebaseStatus{},
110+
},
111+
},
112+
want: func(t require.TestingT, err error, i ...any) {
113+
require.ErrorContains(t, err, "gitUrlPath should not end with space")
98114
},
99115
},
100116
}
101117

102118
for _, tt := range tests {
103119
t.Run(tt.name, func(t *testing.T) {
104-
t.Parallel()
105-
106120
err := IsCodebaseValid(tt.args.cr)
107121

108122
tt.want(t, err)
@@ -111,8 +125,6 @@ func TestIsCodebaseValid(t *testing.T) {
111125
}
112126

113127
func Test_validateCodBaseName(t *testing.T) {
114-
t.Parallel()
115-
116128
tests := []struct {
117129
name string
118130
codBaseName string
@@ -132,8 +144,6 @@ func Test_validateCodBaseName(t *testing.T) {
132144

133145
for _, tt := range tests {
134146
t.Run(tt.name, func(t *testing.T) {
135-
t.Parallel()
136-
137147
tt.wantErr(t, validateCodBaseName(tt.codBaseName))
138148
})
139149
}

0 commit comments

Comments
 (0)