package handler import ( "testing" "github.com/kataras/iris/v12/macro" ) func TestCanMakeHandler(t *testing.T) { tests := []struct { src string needsHandler bool }{ {"/static/static", false}, {"/{myparam}", false}, {"/{myparam min(1)}", true}, {"/{myparam else 500}", true}, {"/{myparam else 404}", false}, {"/{myparam:string}/static", false}, {"/{myparam:int}", true}, {"/static/{myparam:int}/static", true}, {"/{myparam:path}", false}, {"/{myparam:path min(1) else 404}", true}, } availableMacros := *macro.Defaults for i, tt := range tests { tmpl, err := macro.Parse(tt.src, availableMacros) if err != nil { t.Fatalf("[%d] '%s' failed to be parsed: %v", i, tt.src, err) } if got := CanMakeHandler(tmpl); got != tt.needsHandler { if tt.needsHandler { t.Fatalf("[%d] '%s' expected to be able to generate an evaluator handler instead of a nil one", i, tt.src) } else { t.Fatalf("[%d] '%s' should not need an evaluator handler", i, tt.src) } } } }