@@ -135,21 +135,32 @@ var _ = Describe("Scaffold", func() {
135
135
},
136
136
Entry ("should write the file" ,
137
137
path , content ,
138
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }, body : content },
138
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }, body : content },
139
139
),
140
140
Entry ("should skip optional models if already have one" ,
141
141
path , content ,
142
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }, body : content },
143
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
142
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }, body : content },
143
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
144
144
),
145
145
Entry ("should overwrite required models if already have one" ,
146
146
path , content ,
147
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
148
- fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : OverwriteFile }, body : content },
147
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
148
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : OverwriteFile }, body : content },
149
149
),
150
150
Entry ("should format a go file" ,
151
151
pathGo , "package file\n " ,
152
- fakeTemplate {fakeBuilder : fakeBuilder {path : pathGo }, body : "package file" },
152
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : pathGo }, body : "package file" },
153
+ ),
154
+
155
+ Entry ("should render actions correctly" ,
156
+ path , "package testValue" ,
157
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path , TestField : "testValue" }, body : "package {{.TestField}}" },
158
+ ),
159
+
160
+ Entry ("should render actions with alternative delimiters correctly" ,
161
+ path , "package testValue" ,
162
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path , TestField : "testValue" },
163
+ body : "package [[.TestField]]" , parseDelimLeft : "[[" , parseDelimRight : "]]" },
153
164
),
154
165
)
155
166
@@ -165,17 +176,17 @@ var _ = Describe("Scaffold", func() {
165
176
),
166
177
Entry ("should fail if unable to set default values for a template" ,
167
178
& SetTemplateDefaultsError {},
168
- fakeTemplate {err : testErr },
179
+ & fakeTemplate {err : testErr },
169
180
),
170
181
Entry ("should fail if an unexpected previous model is found" ,
171
182
& ModelAlreadyExistsError {},
172
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
173
- fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : Error }},
183
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
184
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : Error }},
174
185
),
175
186
Entry ("should fail if behavior if-exists-action is not defined" ,
176
187
& UnknownIfExistsActionError {},
177
- fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
178
- fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : - 1 }},
188
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path }},
189
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : path , ifExistsAction : - 1 }},
179
190
),
180
191
)
181
192
@@ -188,15 +199,15 @@ var _ = Describe("Scaffold", func() {
188
199
},
189
200
Entry ("should fail if a template is broken" ,
190
201
"template: " ,
191
- fakeTemplate {body : "{{ .Field }" },
202
+ & fakeTemplate {body : "{{ .Field }" },
192
203
),
193
204
Entry ("should fail if a template params aren't provided" ,
194
205
"template: " ,
195
- fakeTemplate {body : "{{ .Field }}" },
206
+ & fakeTemplate {body : "{{ .Field }}" },
196
207
),
197
208
Entry ("should fail if unable to format a go file" ,
198
209
"expected 'package', found " ,
199
- fakeTemplate {fakeBuilder : fakeBuilder {path : pathGo }, body : content },
210
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : pathGo }, body : content },
200
211
),
201
212
)
202
213
@@ -255,7 +266,7 @@ var b int
255
266
2
256
267
#+kubebuilder:scaffold:-
257
268
` ,
258
- fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml , ifExistsAction : OverwriteFile }, body : `
269
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml , ifExistsAction : OverwriteFile }, body : `
259
270
#+kubebuilder:scaffold:-
260
271
` },
261
272
fakeInserter {
@@ -273,7 +284,7 @@ var b int
273
284
2
274
285
#+kubebuilder:scaffold:-
275
286
` ,
276
- fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml , ifExistsAction : OverwriteFile }, body : `
287
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml , ifExistsAction : OverwriteFile }, body : `
277
288
#+kubebuilder:scaffold:-
278
289
` },
279
290
fakeInserter {
@@ -293,7 +304,7 @@ var b int
293
304
2
294
305
#+kubebuilder:scaffold:-
295
306
` ,
296
- fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml }, body : content },
307
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : pathYaml }, body : content },
297
308
fakeInserter {
298
309
fakeBuilder : fakeBuilder {path : pathYaml },
299
310
codeFragments : CodeFragmentsMap {
@@ -403,12 +414,12 @@ func init() {
403
414
},
404
415
Entry ("should fail if inserting into a model that fails when a file exists and it does exist" ,
405
416
& FileAlreadyExistsError {},
406
- fakeTemplate {fakeBuilder : fakeBuilder {path : "filename" , ifExistsAction : Error }},
417
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : "filename" , ifExistsAction : Error }},
407
418
fakeInserter {fakeBuilder : fakeBuilder {path : "filename" }},
408
419
),
409
420
Entry ("should fail if inserting into a model with unknown behavior if the file exists and it does exist" ,
410
421
& UnknownIfExistsActionError {},
411
- fakeTemplate {fakeBuilder : fakeBuilder {path : "filename" , ifExistsAction : - 1 }},
422
+ & fakeTemplate {fakeBuilder : fakeBuilder {path : "filename" , ifExistsAction : - 1 }},
412
423
fakeInserter {fakeBuilder : fakeBuilder {path : "filename" }},
413
424
),
414
425
)
@@ -419,7 +430,7 @@ func init() {
419
430
})
420
431
421
432
It ("should skip the file by default" , func () {
422
- Expect (s .Execute (fakeTemplate {
433
+ Expect (s .Execute (& fakeTemplate {
423
434
fakeBuilder : fakeBuilder {path : path },
424
435
body : content ,
425
436
})).To (Succeed ())
@@ -430,7 +441,7 @@ func init() {
430
441
})
431
442
432
443
It ("should write the file if configured to do so" , func () {
433
- Expect (s .Execute (fakeTemplate {
444
+ Expect (s .Execute (& fakeTemplate {
434
445
fakeBuilder : fakeBuilder {path : path , ifExistsAction : OverwriteFile },
435
446
body : content ,
436
447
})).To (Succeed ())
@@ -441,7 +452,7 @@ func init() {
441
452
})
442
453
443
454
It ("should error if configured to do so" , func () {
444
- err := s .Execute (fakeTemplate {
455
+ err := s .Execute (& fakeTemplate {
445
456
fakeBuilder : fakeBuilder {path : path , ifExistsAction : Error },
446
457
body : content ,
447
458
})
@@ -458,6 +469,7 @@ var _ Builder = fakeBuilder{}
458
469
type fakeBuilder struct {
459
470
path string
460
471
ifExistsAction IfExistsAction
472
+ TestField string // test go template actions
461
473
}
462
474
463
475
// GetPath implements Builder
@@ -484,23 +496,34 @@ func (f fakeRequiresValidation) Validate() error {
484
496
return f .validateErr
485
497
}
486
498
487
- var _ Template = fakeTemplate {}
499
+ var _ Template = & fakeTemplate {}
488
500
489
501
// fakeTemplate is used to mock a File in order to test Scaffold
490
502
type fakeTemplate struct {
491
503
fakeBuilder
492
504
493
- body string
494
- err error
505
+ body string
506
+ err error
507
+ parseDelimLeft string
508
+ parseDelimRight string
509
+ }
510
+
511
+ func (f * fakeTemplate ) SetDelim (left , right string ) {
512
+ f .parseDelimLeft = left
513
+ f .parseDelimRight = right
514
+ }
515
+
516
+ func (f * fakeTemplate ) GetDelim () (string , string ) {
517
+ return f .parseDelimLeft , f .parseDelimRight
495
518
}
496
519
497
520
// GetBody implements Template
498
- func (f fakeTemplate ) GetBody () string {
521
+ func (f * fakeTemplate ) GetBody () string {
499
522
return f .body
500
523
}
501
524
502
525
// SetTemplateDefaults implements Template
503
- func (f fakeTemplate ) SetTemplateDefaults () error {
526
+ func (f * fakeTemplate ) SetTemplateDefaults () error {
504
527
if f .err != nil {
505
528
return f .err
506
529
}
0 commit comments