package model

import (
	"encoding/json"
	"testing"

	"github.com/stretchr/testify/require"
)

func TestRawJSONSupportsArrayAndObjectRoots(t *testing.T) {
	t.Run("scan array root", func(t *testing.T) {
		var value RawJSON
		require.NoError(t, value.Scan([]byte(`["ns-1","ns-2"]`)))

		payload, err := json.Marshal(value)
		require.NoError(t, err)
		require.JSONEq(t, `["ns-1","ns-2"]`, string(payload))
	})

	t.Run("scan object root", func(t *testing.T) {
		var value RawJSON
		require.NoError(t, value.Scan([]byte(`{"name_servers":["ns-1","ns-2"]}`)))

		payload, err := json.Marshal(value)
		require.NoError(t, err)
		require.JSONEq(t, `{"name_servers":["ns-1","ns-2"]}`, string(payload))
	})
}
