@@ -3,11 +3,11 @@ package notify
3
3
import (
4
4
"context"
5
5
"errors"
6
- "os"
7
- "path/filepath"
8
6
"testing"
9
7
"text/template"
10
8
9
+ "github.com/grafana/alerting/templates"
10
+
11
11
"github.com/go-openapi/strfmt"
12
12
amv2 "github.com/prometheus/alertmanager/api/v2/models"
13
13
"github.com/stretchr/testify/assert"
@@ -102,7 +102,7 @@ func TestTemplateSimple(t *testing.T) {
102
102
Kind : ExecutionError ,
103
103
Error : template.ExecError {
104
104
Name : "slack.title" ,
105
- Err : errors .New (`template: slack.title :1:38: executing "slack.title" at <{{template "missing" .}}>: template "missing" not defined` ),
105
+ Err : errors .New (`template: :1:38: executing "slack.title" at <{{template "missing" .}}>: template "missing" not defined` ),
106
106
},
107
107
}},
108
108
},
@@ -154,7 +154,7 @@ func TestTemplateSimple(t *testing.T) {
154
154
Kind : ExecutionError ,
155
155
Error : template.ExecError {
156
156
Name : "other" ,
157
- Err : errors .New (`template: slack.title :1:91: executing "other" at <{{template "missing" .}}>: template "missing" not defined` ),
157
+ Err : errors .New (`template: :1:91: executing "other" at <{{template "missing" .}}>: template "missing" not defined` ),
158
158
},
159
159
}},
160
160
},
@@ -275,17 +275,10 @@ func TestTemplateSpecialCases(t *testing.T) {
275
275
276
276
func TestTemplateWithExistingTemplates (t * testing.T ) {
277
277
am , _ := setupAMTest (t )
278
- tmpDir , err := os .MkdirTemp ("" , "test-templates" )
279
- require .NoError (t , err )
280
- t .Cleanup (func () {
281
- require .NoError (t , os .RemoveAll (tmpDir ))
282
- })
283
-
284
- am .workingDirectory = tmpDir
285
278
286
279
tests := []struct {
287
280
name string
288
- existingTemplates map [ string ] string
281
+ existingTemplates []templates. TemplateDefinition
289
282
input TestTemplatesConfigBodyParams
290
283
expected TestTemplatesResults
291
284
}{{
@@ -310,9 +303,10 @@ func TestTemplateWithExistingTemplates(t *testing.T) {
310
303
Name : "slack.title" ,
311
304
Template : `{{ define "slack.title" }}{{ template "existing" . }}{{ end }}` ,
312
305
},
313
- existingTemplates : map [string ]string {
314
- "existing" : `{{ define "existing" }}Some existing template{{ end }}` ,
315
- },
306
+ existingTemplates : []templates.TemplateDefinition {{
307
+ Name : "existing" ,
308
+ Template : `{{ define "existing" }}Some existing template{{ end }}` ,
309
+ }},
316
310
expected : TestTemplatesResults {
317
311
Results : []TestTemplatesResult {{
318
312
Name : "slack.title" ,
@@ -327,9 +321,10 @@ func TestTemplateWithExistingTemplates(t *testing.T) {
327
321
Name : "slack.title" ,
328
322
Template : `{{ define "slack.title" }}New template{{ end }}` ,
329
323
},
330
- existingTemplates : map [string ]string {
331
- "slack.title" : `{{ define "slack.title" }}Some existing template{{ end }}` ,
332
- },
324
+ existingTemplates : []templates.TemplateDefinition {{
325
+ Name : "slack.title" ,
326
+ Template : `{{ define "slack.title" }}Some existing template{{ end }}` ,
327
+ }},
333
328
expected : TestTemplatesResults {
334
329
Results : []TestTemplatesResult {{
335
330
Name : "slack.title" ,
@@ -344,17 +339,18 @@ func TestTemplateWithExistingTemplates(t *testing.T) {
344
339
Name : "slack.title" ,
345
340
Template : `{{ define "slack.title" }}{{ template "slack.alternate_title" . }}{{ end }}` ,
346
341
},
347
- existingTemplates : map [string ]string {
348
- "slack.title" : `{{ define "slack.title" }}Some existing template{{ end }}{{ define "slack.alternate_title" }}Some existing alternate template{{ end }}` ,
349
- },
342
+ existingTemplates : []templates.TemplateDefinition {{
343
+ Name : "slack.title" ,
344
+ Template : `{{ define "slack.title" }}Some existing template{{ end }}{{ define "slack.alternate_title" }}Some existing alternate template{{ end }}` ,
345
+ }},
350
346
expected : TestTemplatesResults {
351
347
Results : nil ,
352
348
Errors : []TestTemplatesErrorResult {{
353
349
Name : "slack.title" ,
354
350
Kind : ExecutionError ,
355
351
Error : template.ExecError {
356
352
Name : "slack.title" ,
357
- Err : errors .New (`template: slack.title :1:38: executing "slack.title" at <{{template "slack.alternate_title" .}}>: template "slack.alternate_title" not defined` ),
353
+ Err : errors .New (`template: :1:38: executing "slack.title" at <{{template "slack.alternate_title" .}}>: template "slack.alternate_title" not defined` ),
358
354
},
359
355
}},
360
356
},
@@ -365,9 +361,10 @@ func TestTemplateWithExistingTemplates(t *testing.T) {
365
361
Name : "slack.title" ,
366
362
Template : `{{ define "slack.title" }}{{ template "slack.alternate_title" . }}{{ end }}{{ define "slack.alternate_title" }}Some new alternate template{{ end }}` ,
367
363
},
368
- existingTemplates : map [string ]string {
369
- "slack.title" : `{{ define "slack.title" }}Some existing template{{ end }}{{ define "slack.alternate_title" }}Some existing alternate template{{ end }}` ,
370
- },
364
+ existingTemplates : []templates.TemplateDefinition {{
365
+ Name : "slack.title" ,
366
+ Template : `{{ define "slack.title" }}Some existing template{{ end }}{{ define "slack.alternate_title" }}Some existing alternate template{{ end }}` ,
367
+ }},
371
368
expected : TestTemplatesResults {
372
369
Results : []TestTemplatesResult {{
373
370
Name : "slack.title" ,
@@ -381,10 +378,7 @@ func TestTemplateWithExistingTemplates(t *testing.T) {
381
378
for _ , test := range tests {
382
379
t .Run (test .name , func (t * testing.T ) {
383
380
if len (test .existingTemplates ) > 0 {
384
- for name , tmpl := range test .existingTemplates {
385
- createTemplate (t , tmpDir , name , tmpl )
386
- am .templates = append (am .templates , name )
387
- }
381
+ am .templates = test .existingTemplates
388
382
}
389
383
res , err := am .TestTemplate (context .Background (), test .input )
390
384
require .NoError (t , err )
@@ -436,18 +430,3 @@ CommonAnnotations: {{ range .CommonAnnotations.SortedPairs }}{{ .Name }}={{ .Val
436
430
})
437
431
}
438
432
}
439
-
440
- func createTemplate (t * testing.T , tmpDir string , name string , tmpl string ) {
441
- f , err := os .Create (filepath .Join (tmpDir , name ))
442
- require .NoError (t , err )
443
- defer func (f * os.File ) {
444
- _ = f .Close ()
445
- }(f )
446
-
447
- t .Cleanup (func () {
448
- require .NoError (t , os .RemoveAll (f .Name ()))
449
- })
450
-
451
- _ , err = f .WriteString (tmpl )
452
- require .NoError (t , err )
453
- }
0 commit comments