Skip to content

Instantly share code, notes, and snippets.

@mickael-kerjean
Created December 9, 2024 04:39
Show Gist options
  • Save mickael-kerjean/b98a0c6901b3b17bb5ecbf3991dddb6a to your computer and use it in GitHub Desktop.
Save mickael-kerjean/b98a0c6901b3b17bb5ecbf3991dddb6a to your computer and use it in GitHub Desktop.
tmpl_test.go
package ctrl
import (
"bytes"
"testing"
"text/template"
"github.com/stretchr/testify/assert"
)
func TestSessionTemplate(t *testing.T) {
for _, testCase := range []string{
`{{ if "ADMIN, TEST" | contains "ADMIN" }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | contains "ADMIN" true }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | contains "ADMIN" false }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | contains "ADM" false }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | contains "TEST" }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | contains " TEST" }}{{ else }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split ", " | contains "ADMIN" }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split "," | contains "ADMIN" }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split "," | contains "TEST" }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split ", " | contains "bar" }}{{ else }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split "," | contains "bar" }}{{ else }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split ", " | contains "ADM" true }}{{ else }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split "," | contains "ADM" true }}{{ else }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split ", " | contains "ADM" false }}OK{{ end }}`,
`{{ if "ADMIN, TEST" | split "," | contains "ADM" false }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | contains "bar" true }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | contains "hell" true }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | contains "hell" false }}OK{{ end }}`,
`{{ if eq 3 ("foo, bar, hello" | split ", " | len) }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 0 | eq "foo" }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | eq "hello" }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get -1 | eq "foo" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 4 | eq "hello" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | get 2 | eq "hello" }}OK{{ end }}`,
`{{ if "foo, bar, hello" | get 1 | eq "bar" }}OK{{ end }}`,
`{{ if "foo, bar, hello" | get 4 | eq "bar" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | get -1 | eq "bar" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | eq "no" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | eq "nil" }}{{ else }}OK{{ end }}`,
`{{ if "foo, bar, hello" | split ", " | get 2 | eq "bar" }}{{ else }}OK{{ end }}`,
} {
var b bytes.Buffer
err := template.Must(template.
New("testOK").
Funcs(tmplFuncs).
Parse(testCase)).
Execute(&b, nil)
assert.NoError(t, err)
assert.Equal(t, "OK", b.String())
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment