77 lines
1.4 KiB
Go
77 lines
1.4 KiB
Go
|
package render
|
||
|
|
||
|
import (
|
||
|
"go-udemy-web-1/internal/models"
|
||
|
"net/http"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestAddDefaultData(t *testing.T) {
|
||
|
var td models.TemplateData
|
||
|
|
||
|
r, err := getSession()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
session.Put(r.Context(), "flash", "123")
|
||
|
|
||
|
result := AddDefaultData(&td, r)
|
||
|
|
||
|
if result.Flash != "123" {
|
||
|
t.Error("flash value of 123 not found in session")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRenderTemplate(t *testing.T) {
|
||
|
pathToTemplates = "../../templates"
|
||
|
tc, err := CreateTemplateCache()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
app.TemplateCahce = tc
|
||
|
|
||
|
r, err := getSession()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
|
||
|
var ww myWriter
|
||
|
|
||
|
err = RenderTemplate(&ww, r, "home.page.tmpl", &models.TemplateData{})
|
||
|
if err != nil {
|
||
|
t.Error("error writiing template to browser")
|
||
|
}
|
||
|
|
||
|
err = RenderTemplate(&ww, r, "non-existent.page.html", &models.TemplateData{})
|
||
|
if err == nil {
|
||
|
t.Error("rendered template that doesn't exist")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func getSession() (*http.Request, error) {
|
||
|
r, err := http.NewRequest("GET", "/some-url", nil)
|
||
|
if err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
|
||
|
ctx := r.Context()
|
||
|
ctx, _ = session.Load(ctx, r.Header.Get("X-Session"))
|
||
|
r = r.WithContext(ctx)
|
||
|
|
||
|
return r, nil
|
||
|
}
|
||
|
|
||
|
func TestNewTemplate(t *testing.T) {
|
||
|
NewTemplates(app)
|
||
|
}
|
||
|
|
||
|
func TestCreateTemplateCache(t *testing.T) {
|
||
|
pathToTemplates = "../../templates"
|
||
|
_, err := CreateTemplateCache()
|
||
|
if err != nil {
|
||
|
t.Error(err)
|
||
|
}
|
||
|
}
|