package smplt_test import ( "mime" "testing" . "github.com/meatballhat/box-o-sand/gotime/smplt" ) const ( BASIC_RENDERED_TXT_SIMPLATE = ` import ( "time" ) type Dance struct { Who string When time.Time } d := &Dance{ Who: "Everybody", When: time.Now(), } {{d.Who}} Dance {{d.When}}! ` BASIC_STATIC_TXT_SIMPLATE = ` Everybody Dance Now! ` BASIC_JSON_SIMPLATE = ` import ( "time" ) type Dance struct { Who string When time.Time } d := &Dance{ Who: "Everybody", When: time.Now(), } response.SetBody(d) ` BASIC_NEGOTIATED_SIMPLATE = ` import ( "time" ) type Dance struct { Who string When time.Time } d := &Dance{ Who: "Everybody", When: time.Now(), } text/plain {{d.Who}} Dance {{d.When}}! application/json {"who":"{{d.Who}}","when":"{{d.When}}"} ` ) func TestSimplateKnowsItsFilename(t *testing.T) { s := SimplateFromString("hasty-decisions.txt", "herpherpderpherp") if s.Filename != "hasty-decisions.txt" { t.Errorf("Simplate filename incorrectly assigned as %s instead of %s", s.Filename, "hasty-decisions.txt") } } func TestSimplateKnowsItsContentType(t *testing.T) { s := SimplateFromString("hasty-decisions.js", "function herp() { return 'derp'; }") expected := mime.TypeByExtension(".js") if s.ContentType != expected { t.Errorf("Simplate content type incorrectly assigned as %s instead of %s", s.ContentType, expected) } } func TestDetectsRenderedSimplate(t *testing.T) { s := SimplateFromString("basic-rendered.txt", BASIC_RENDERED_TXT_SIMPLATE) if s.Type != SIMPLATE_TYPE_RENDERED { t.Errorf("Simplate detected as %s instead of %s", s.Type, SIMPLATE_TYPE_RENDERED) } } func TestDetectsStaticSimplate(t *testing.T) { s := SimplateFromString("basic-static.txt", BASIC_STATIC_TXT_SIMPLATE) if s.Type != SIMPLATE_TYPE_STATIC { t.Errorf("Simplate detected as %s instead of %s", s.Type, SIMPLATE_TYPE_STATIC) } } func TestDetectsJSONSimplates(t *testing.T) { s := SimplateFromString("basic.json", BASIC_JSON_SIMPLATE) if s.Type != SIMPLATE_TYPE_JSON { t.Errorf("Simplate detected as %s instead of %s", s.Type, SIMPLATE_TYPE_JSON) } } func TestDetectsNegotiatedSimplates(t *testing.T) { s := SimplateFromString("hork", BASIC_NEGOTIATED_SIMPLATE) if s.Type != SIMPLATE_TYPE_NEGOTIATED { t.Errorf("Simplate detected as %s instead of %s", s.Type, SIMPLATE_TYPE_NEGOTIATED) } }