add unittest for text_renderer.go (#168)

Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
yxxhero 2022-06-29 19:33:15 +08:00 committed by GitHub
parent c85a085e4d
commit 5bd5f72170
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 74 additions and 16 deletions

View File

@ -262,7 +262,7 @@ releases:
}, },
selectors: []string{"name=test2"}, selectors: []string{"name=test2"},
linted: []exectest.Release{ linted: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string{}}, {Name: "test2", Flags: []string{}},
}, },
}) })
}) })
@ -275,8 +275,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
linted: []exectest.Release{ linted: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string{}}, {Name: "test2", Flags: []string{}},
exectest.Release{Name: "test3", Flags: []string{}}, {Name: "test3", Flags: []string{}},
}, },
}) })
}) })
@ -290,8 +290,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
linted: []exectest.Release{ linted: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string{}}, {Name: "test2", Flags: []string{}},
exectest.Release{Name: "test3", Flags: []string{}}, {Name: "test3", Flags: []string{}},
}, },
}) })
}) })
@ -305,7 +305,7 @@ releases:
}, },
selectors: []string{"name=test2"}, selectors: []string{"name=test2"},
linted: []exectest.Release{ linted: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string{}}, {Name: "test2", Flags: []string{}},
}, },
}) })
}) })
@ -319,8 +319,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
linted: []exectest.Release{ linted: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string{}}, {Name: "test2", Flags: []string{}},
exectest.Release{Name: "test3", Flags: []string{}}, {Name: "test3", Flags: []string{}},
}, },
}) })
}) })

View File

@ -262,7 +262,7 @@ releases:
}, },
selectors: []string{"name=test2"}, selectors: []string{"name=test2"},
templated: []exectest.Release{ templated: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string(nil)}, {Name: "test2", Flags: []string(nil)},
}, },
}) })
}) })
@ -275,8 +275,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
templated: []exectest.Release{ templated: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string(nil)}, {Name: "test2", Flags: []string(nil)},
exectest.Release{Name: "test3", Flags: []string(nil)}, {Name: "test3", Flags: []string(nil)},
}, },
}) })
}) })
@ -290,8 +290,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
templated: []exectest.Release{ templated: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string(nil)}, {Name: "test2", Flags: []string(nil)},
exectest.Release{Name: "test3", Flags: []string(nil)}, {Name: "test3", Flags: []string(nil)},
}, },
}) })
}) })
@ -305,7 +305,7 @@ releases:
}, },
selectors: []string{"name=test2"}, selectors: []string{"name=test2"},
templated: []exectest.Release{ templated: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string(nil)}, {Name: "test2", Flags: []string(nil)},
}, },
}) })
}) })
@ -319,8 +319,8 @@ releases:
}, },
selectors: []string{"name=test3"}, selectors: []string{"name=test3"},
templated: []exectest.Release{ templated: []exectest.Release{
exectest.Release{Name: "test2", Flags: []string(nil)}, {Name: "test2", Flags: []string(nil)},
exectest.Release{Name: "test3", Flags: []string(nil)}, {Name: "test3", Flags: []string(nil)},
}, },
}) })
}) })

View File

@ -0,0 +1,58 @@
package tmpl
import (
"os"
"testing"
"github.com/stretchr/testify/require"
)
// TestTextRenderer tests the text renderer.
func TestNewTextRenderer(t *testing.T) {
tData := map[string]interface{}{
"foo": "bar",
}
tr := NewTextRenderer(os.ReadFile, ".", tData)
require.Equal(t, tData, tr.Data)
require.Equal(t, ".", tr.Context.basePath)
}
// TestTextRenderer tests the text renderer.
func TestTextRender(t *testing.T) {
tData := map[string]interface{}{
"foot": "bart",
}
tr := NewTextRenderer(os.ReadFile, ".", tData)
tests := []struct {
text string
expectd string
wantErr bool
}{
{
text: `{{ $foo := .foot }}{{ $foo }}`,
expectd: "bart",
wantErr: false,
},
{
text: `{ $foo := .foot }}{{ $foo }}`,
wantErr: true,
},
{
text: `{{ $foo := .a }}{{ $foo }}`,
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.text, func(t *testing.T) {
got, err := tr.RenderTemplateText(tt.text)
if tt.wantErr {
require.Error(t, err)
} else {
require.NoError(t, err)
}
require.Equal(t, tt.expectd, got)
})
}
}