Files
dbx/jet_expr_test.go
T
end 7e30272020 feat(jet): add ExprPtrs for pointer slice expressions
ExprPtrs dereferences []*T values, skips nil entries, and maps survivors
through a converter.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-29 18:49:19 -07:00

61 lines
1.4 KiB
Go

package dbx
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestStringKSUIDExpr(t *testing.T) {
id := NewStringKSUID()
expr := StringKSUIDExpr(id)
require.NotNil(t, expr)
assert.Equal(t, expr, id.Expr())
nilExpr := StringKSUIDExpr(NilStringKSUID)
require.NotNil(t, nilExpr)
assert.Equal(t, nilExpr, NilStringKSUID.Expr())
}
func TestBinaryKSUIDExpr(t *testing.T) {
id := NewBinaryKSUID()
expr := BinaryKSUIDExpr(id)
require.NotNil(t, expr)
assert.Equal(t, expr, id.Expr())
nilExpr := BinaryKSUIDExpr(NilBinaryKSUID)
require.NotNil(t, nilExpr)
assert.Equal(t, nilExpr, NilBinaryKSUID.Expr())
}
func TestExprPtrs_StringKSUID(t *testing.T) {
a := NewStringKSUID()
b := NewStringKSUID()
exprs := ExprPtrs([]*StringKSUID{&a, nil, &b}, StringKSUIDExpr)
require.Len(t, exprs, 2)
}
func TestExprPtrs_BinaryKSUID(t *testing.T) {
a := NewBinaryKSUID()
exprs := ExprPtrs([]*BinaryKSUID{&a, nil}, BinaryKSUIDExpr)
require.Len(t, exprs, 1)
assert.NotNil(t, exprs[0])
}
func TestExprValues_StringKSUID(t *testing.T) {
a := NewStringKSUID()
b := NewStringKSUID()
exprs := ExprValues([]*StringKSUID{&a, &b}, func(id *StringKSUID) Expression {
return id.Expr()
})
require.Len(t, exprs, 2)
}
func TestExprValues_BinaryKSUID(t *testing.T) {
a := NewBinaryKSUID()
exprs := ExprValues([]BinaryKSUID{a}, BinaryKSUIDExpr)
require.Len(t, exprs, 1)
assert.NotNil(t, exprs[0])
}