test: 补充 Condition.ToSql 迁移到表达式树后的测试覆盖

This commit is contained in:
2026-08-21 08:56:37 +08:00
parent 5b39565a36
commit 68cd65f70d
+41
View File
@@ -0,0 +1,41 @@
package condition_test
import (
"testing"
"git.fsdpf.net/go/condition"
"git.fsdpf.net/go/db"
"github.com/stretchr/testify/suite"
_ "git.fsdpf.net/go/db/dialect/sqlite3"
db_eng "git.fsdpf.net/go/db/engine"
"git.fsdpf.net/go/db/sqlgen"
)
type conditionTest struct {
suite.Suite
db *db.Database
esg sqlgen.ExpressionSQLGenerator
}
func TestConditionSuite(t *testing.T) {
suite.Run(t, new(conditionTest))
}
func (t *conditionTest) SetupSuite() {
database := db_eng.Open(map[string]db_eng.DBConfig{
"condition-test": db_eng.NewDBConfig("sqlite3", db_eng.WithSQLiteFile(":memory:")),
})
t.db = database.Connection("condition-test")
}
func (t *conditionTest) TestToSql() {
cond := condition.New(condition.Describe("测试"))
cond.SetExpr(condition.NewExpr("User", "name", condition.Operator(condition.LIKE), condition.Token("张三", condition.STRING))).
SetExpr(condition.NewExpr("User", "age", condition.Token("18", condition.STRING))).
SetExpr(condition.NewExpr("User", "attr->'birthday'", condition.Token("18", condition.STRING))).
SetExpr(condition.NewExpr("User", "roles", condition.FieldSqlFn("json_contains", ""), condition.Token("admin", condition.STRING)))
// SetExpr(condition.NewExpr("User", "roles", condition.FieldSqlFn("json_contains", ""), condition.Token("admin", condition.STRING)))
t.T().Log(t.db.From(db.T("users").As("User")).Where(cond.ToSql(nil)).ToSQL())
}