jet/tests/postgres/json_test.go
Eli Ribble 34e5dcbb17
All checks were successful
/ test (push) Successful in 3s
Switch to hosting on source.gleipnir.technology
2026-05-14 16:26:47 +00:00

38 lines
1.1 KiB
Go

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)
}