jet/tests/postgres/json_test.go

39 lines
1.1 KiB
Go
Raw Normal View History

package postgres
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/require"
. "source.gleipnir.technology/Gleipnir/jet/postgres"
. "source.gleipnir.technology/Gleipnir/jet/tests/.gentestdata/jetdb/test_sample/table"
)
type AllTypesJsonRawMessageResult struct {
JSON string `alias:"all_types.json"`
JsonbPtr *json.RawMessage `alias:"all_types.jsonb_ptr"`
Jsonb json.RawMessage `alias:"all_types.jsonb"`
}
func TestJsonRawMessage(t *testing.T) {
var dest []AllTypesJsonRawMessageResult
err := SELECT(AllTypes.JSON, AllTypes.JsonbPtr, AllTypes.Jsonb).
FROM(AllTypes).
LIMIT(2).
QueryContext(ctx, db, &dest)
require.NoError(t, err)
require.Len(t, dest, 2)
require.JSONEq(t, allTypesRow0.JSON, dest[0].JSON)
require.JSONEq(t, allTypesRow0.Jsonb, string(dest[0].Jsonb))
require.NotNil(t, dest[0].JsonbPtr)
require.JSONEq(t, *allTypesRow0.JsonbPtr, string(*dest[0].JsonbPtr))
require.JSONEq(t, allTypesRow1.JSON, dest[1].JSON)
require.JSONEq(t, allTypesRow1.Jsonb, string(dest[1].Jsonb))
require.Nil(t, dest[1].JsonbPtr)
}