Skip to content

Commit f85e347

Browse files
authored
Merge pull request #3 from gochore/dev
feat: support NewStringElement
2 parents 86d077e + e853030 commit f85e347

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

element.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ type Element interface {
1414

1515
type StringElement string
1616

17+
func NewStringElement(format string, a ...interface{}) StringElement {
18+
return StringElement(fmt.Sprintf(format, a...))
19+
}
20+
1721
func (e StringElement) Render(writer io.Writer, themes ...Theme) error {
1822
return htmlRender(strings.NewReader(string(e)), writer, mergeThemes(themes))
1923
}

element_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package emailt
33
import (
44
"bytes"
55
"testing"
6+
"time"
67
)
78

89
func TestStringElement_Render(t *testing.T) {
@@ -118,3 +119,31 @@ func TestTemplateElement_Render(t *testing.T) {
118119
})
119120
}
120121
}
122+
123+
func TestNewStringElement(t *testing.T) {
124+
type args struct {
125+
format string
126+
a []interface{}
127+
}
128+
tests := []struct {
129+
name string
130+
args args
131+
want StringElement
132+
}{
133+
{
134+
name: "regular",
135+
args: args{
136+
format: "%v %v",
137+
a: []interface{}{1, time.Minute},
138+
},
139+
want: "1 1m0s",
140+
},
141+
}
142+
for _, tt := range tests {
143+
t.Run(tt.name, func(t *testing.T) {
144+
if got := NewStringElement(tt.args.format, tt.args.a...); got != tt.want {
145+
t.Errorf("NewStringElement() = %v, want %v", got, tt.want)
146+
}
147+
})
148+
}
149+
}

0 commit comments

Comments
 (0)