You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package engine_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"bytes"
|
|
|
|
"context"
|
|
|
|
"encoding/json"
|
|
|
|
"fmt"
|
|
|
|
"io"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"gitoa.ru/go-4devs/templating/engine"
|
|
|
|
"gitoa.ru/go-4devs/templating/render"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestEncodeLoad(t *testing.T) {
|
|
|
|
t.Parallel()
|
|
|
|
|
|
|
|
ctx := context.Background()
|
|
|
|
buff := bytes.Buffer{}
|
|
|
|
|
|
|
|
exec, err := engine.NewEncode("json", func(w io.Writer, v interface{}) error {
|
|
|
|
if err := json.NewEncoder(w).Encode(v); err != nil {
|
|
|
|
return fmt.Errorf("%w", err)
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}).Load(ctx, render.NewReference("any"))
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.NoError(t, exec(ctx, &buff, map[string]string{"name": "json data"}, nil))
|
|
|
|
require.Equal(t, "{\"name\":\"json data\"}\n", buff.String())
|
|
|
|
}
|