package templates

import (
	"bytes"
	"testing"
)

func TestParseStringFunctions(t *testing.T) {
	tm, err := Parse(`{{join (split . ":") "/"}}`)
	if err != nil {
		t.Fatal(err)
	}

	var b bytes.Buffer
	if err := tm.Execute(&b, "text:with:colon"); err != nil {
		t.Fatal(err)
	}
	want := "text/with/colon"
	if b.String() != want {
		t.Fatalf("expected %s, got %s", want, b.String())
	}
}

func TestNewParse(t *testing.T) {
	tm, err := NewParse("foo", "this is a {{ . }}")
	if err != nil {
		t.Fatal(err)
	}

	var b bytes.Buffer
	if err := tm.Execute(&b, "string"); err != nil {
		t.Fatal(err)
	}
	want := "this is a string"
	if b.String() != want {
		t.Fatalf("expected %s, got %s", want, b.String())
	}
}