@@ -120,9 +120,43 @@ func Test_VerifyBuilder(t *testing.T) {
120
120
expected : serrors .ErrorMismatchBuilderID ,
121
121
},
122
122
{
123
- name : "mismatch recipe.type" ,
123
+ name : "v0.2 mismatch recipe.type" ,
124
124
path : "./testdata/gcloud-container-invalid-recipe.type.json" ,
125
- expected : serrors .ErrorMismatchBuilderID ,
125
+ expected : serrors .ErrorInvalidRecipe ,
126
+ },
127
+ {
128
+ name : "v0.1 invalid builder" ,
129
+ path : "./testdata/gcloud-container-invalid-builderv01.json" ,
130
+ builderID :
"http://cloudbuild.googleapis.com/[email protected] " ,
131
+ expected : serrors .ErrorInvalidBuilderID ,
132
+ },
133
+ {
134
+ name : "invalid v0.2 recipe type CloudBuildSteps" ,
135
+ path : "./testdata/gcloud-container-invalid-recipetypestepsv02.json" ,
136
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
137
+ expected : serrors .ErrorInvalidRecipe ,
138
+ },
139
+ {
140
+ name : "invalid v0.2 recipe type CloudBuildYaml" ,
141
+ path : "./testdata/gcloud-container-invalid-recipetypecloudv02.json" ,
142
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
143
+ expected : serrors .ErrorInvalidRecipe ,
144
+ },
145
+ {
146
+ name : "valid v0.3 recipe type CloudBuildSteps" ,
147
+ path : "./testdata/gcloud-container-invalid-recipetypestepsv03.json" ,
148
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
149
+ },
150
+ {
151
+ name : "valid v0.3 recipe type CloudBuildYaml" ,
152
+ path : "./testdata/gcloud-container-invalid-recipetypecloudv03.json" ,
153
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
154
+ },
155
+ {
156
+ name : "invalid v0.3 recipe type random" ,
157
+ path : "./testdata/gcloud-container-invalid-recipetyperandv03.json" ,
158
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
159
+ expected : serrors .ErrorInvalidRecipe ,
126
160
},
127
161
}
128
162
for _ , tt := range tests {
@@ -164,6 +198,70 @@ func Test_VerifyBuilder(t *testing.T) {
164
198
}
165
199
}
166
200
201
+ func Test_validateRecipeType (t * testing.T ) {
202
+ t .Parallel ()
203
+ tests := []struct {
204
+ name string
205
+ builderID string
206
+ recipeType string
207
+ expected error
208
+ }{
209
+ // v0.2 builder.
210
+ {
211
+ name : "valid v0.2 recipe type" ,
212
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
213
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
214
+ },
215
+ {
216
+ name : "invalid v0.2 recipe type CloudBuildYaml" ,
217
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
218
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
219
+ expected : serrors .ErrorInvalidRecipe ,
220
+ },
221
+ {
222
+ name : "invalid v0.2 recipe type CloudBuildSteps" ,
223
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
224
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
225
+ expected : serrors .ErrorInvalidRecipe ,
226
+ },
227
+ // v0.3 builder.
228
+ {
229
+ name : "valid v0.3 recipe type CloudBuildYaml" ,
230
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
231
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
232
+ },
233
+ {
234
+ name : "valid v0.3 recipe type CloudBuildSteps" ,
235
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
236
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
237
+ },
238
+ {
239
+ name : "invalid v0.3 recipe type GoogleHostedWorker" ,
240
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
241
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
242
+ expected : serrors .ErrorInvalidRecipe ,
243
+ },
244
+ // No version.
245
+ {
246
+ name : "invalid builder version" ,
247
+ builderID :
"https://cloudbuild.googleapis.com/[email protected] " ,
248
+ recipeType :
"https://cloudbuild.googleapis.com/[email protected] " ,
249
+ expected : serrors .ErrorInvalidBuilderID ,
250
+ },
251
+ }
252
+ for _ , tt := range tests {
253
+ tt := tt // Re-initializing variable so it is not changed while executing the closure below
254
+ t .Run (tt .name , func (t * testing.T ) {
255
+ t .Parallel ()
256
+
257
+ err := validateRecipeType (tt .builderID , tt .recipeType )
258
+ if ! cmp .Equal (err , tt .expected , cmpopts .EquateErrors ()) {
259
+ t .Errorf (cmp .Diff (err , tt .expected , cmpopts .EquateErrors ()))
260
+ }
261
+ })
262
+ }
263
+ }
264
+
167
265
func Test_VerifySourceURI (t * testing.T ) {
168
266
t .Parallel ()
169
267
tests := []struct {
0 commit comments