package template import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestEmbed_Basic(t *testing.T) { tmpl := `

Old content

` result, err := Embed(tmpl, "

New

", DefaultMarkerStart, DefaultMarkerEnd) require.NoError(t, err) assert.Contains(t, result, "

New

") assert.NotContains(t, result, "Old content") assert.Contains(t, result, DefaultMarkerStart) assert.Contains(t, result, DefaultMarkerEnd) } func TestEmbed_CustomMarkers(t *testing.T) { tmpl := `

old

` result, err := Embed(tmpl, "

New

", "", "") require.NoError(t, err) assert.Contains(t, result, "

New

") } func TestEmbed_MissingStartMarker(t *testing.T) { tmpl := `` _, err := Embed(tmpl, "content", DefaultMarkerStart, DefaultMarkerEnd) require.Error(t, err) assert.Contains(t, err.Error(), "start marker") } func TestEmbed_MissingEndMarker(t *testing.T) { tmpl := `` _, err := Embed(tmpl, "content", DefaultMarkerStart, DefaultMarkerEnd) require.Error(t, err) assert.Contains(t, err.Error(), "end marker") } func TestEmbed_EndBeforeStart(t *testing.T) { tmpl := ` ` _, err := Embed(tmpl, "content", DefaultMarkerStart, DefaultMarkerEnd) require.Error(t, err) assert.Contains(t, err.Error(), "before start") } func TestEmbed_PreserveSurroundingContent(t *testing.T) { tmpl := `
title
old ` result, err := Embed(tmpl, "

new

", DefaultMarkerStart, DefaultMarkerEnd) require.NoError(t, err) assert.Contains(t, result, "
title
") assert.Contains(t, result, "") }