test: fill remaining V1 test coverage
Add JSONB, pointer/filter, MustFetchOne, and dialect logger registration tests for dbxm and dbxp. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package dbx
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestJSONB_ScanValue(t *testing.T) {
|
||||
original := JSONB{"key": "value", "num": float64(1)}
|
||||
|
||||
val, err := original.Value()
|
||||
require.NoError(t, err)
|
||||
|
||||
var scanned JSONB
|
||||
require.NoError(t, scanned.Scan(val))
|
||||
assert.Equal(t, original["key"], scanned["key"])
|
||||
|
||||
require.NoError(t, scanned.Scan([]byte(`{"a":1}`)))
|
||||
assert.Equal(t, float64(1), scanned["a"])
|
||||
|
||||
require.NoError(t, scanned.Scan(`{"b":2}`))
|
||||
assert.Equal(t, float64(2), scanned["b"])
|
||||
}
|
||||
|
||||
func TestJSONB_ScanNil(t *testing.T) {
|
||||
j := JSONB{"x": 1}
|
||||
require.NoError(t, j.Scan(nil))
|
||||
assert.Nil(t, j)
|
||||
|
||||
val, err := JSONB(nil).Value()
|
||||
require.NoError(t, err)
|
||||
assert.Nil(t, val)
|
||||
}
|
||||
|
||||
func TestJSONB_ScanUnsupportedType(t *testing.T) {
|
||||
var j JSONB
|
||||
err := j.Scan(123)
|
||||
assert.Error(t, err)
|
||||
}
|
||||
|
||||
func TestNewJSONB(t *testing.T) {
|
||||
data := map[string]any{"k": "v"}
|
||||
j := NewJSONB(data)
|
||||
assert.Equal(t, JSONB(data), j)
|
||||
}
|
||||
|
||||
func TestJSONB_String(t *testing.T) {
|
||||
j := JSONB{"a": "b"}
|
||||
assert.JSONEq(t, `{"a":"b"}`, j.String())
|
||||
}
|
||||
Reference in New Issue
Block a user