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