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 := `
old
`
result, err := Embed(tmpl, "new
", DefaultMarkerStart, DefaultMarkerEnd)
require.NoError(t, err)
assert.Contains(t, result, "")
assert.Contains(t, result, "")
}