package main import ( "bytes" "io/ioutil" "log" "os" "path/filepath" "testing" "github.com/stretchr/testify/assert" ) func TestLoadTemplates(t *testing.T) { data := struct { TestString string }{ TestString: "Testing", } templates := loadTemplates("") assert.NotEqual(t, templates, nil) var defaultSignin bytes.Buffer templates.ExecuteTemplate(&defaultSignin, "sign_in.html", data) assert.Equal(t, "\n", defaultSignin.String()[0:16]) var defaultError bytes.Buffer templates.ExecuteTemplate(&defaultError, "error.html", data) assert.Equal(t, "\n", defaultError.String()[0:16]) dir, err := ioutil.TempDir("", "templatetest") if err != nil { log.Fatal(err) } defer os.RemoveAll(dir) templateHTML := `{{.TestString}} {{.TestString | ToLower}} {{.TestString | ToUpper}}` signInFile := filepath.Join(dir, "sign_in.html") if err := ioutil.WriteFile(signInFile, []byte(templateHTML), 0666); err != nil { log.Fatal(err) } errorFile := filepath.Join(dir, "error.html") if err := ioutil.WriteFile(errorFile, []byte(templateHTML), 0666); err != nil { log.Fatal(err) } templates = loadTemplates(dir) assert.NotEqual(t, templates, nil) var sitpl bytes.Buffer templates.ExecuteTemplate(&sitpl, "sign_in.html", data) assert.Equal(t, "Testing testing TESTING", sitpl.String()) var errtpl bytes.Buffer templates.ExecuteTemplate(&errtpl, "error.html", data) assert.Equal(t, "Testing testing TESTING", errtpl.String()) } func TestTemplatesCompile(t *testing.T) { templates := getTemplates() assert.NotEqual(t, templates, nil) }