Files
Gumble-Backend/internal/util/db/or_test.go
Zane Walker 7e940c83a7
Some checks failed
Build & Test / build-test (push) Has been cancelled
Build & Test / swagger-codegen-cli (push) Has been cancelled
CodeQL / Analyze (go) (push) Has been cancelled
(Feat): Initial Commit
2026-07-03 19:41:31 +05:30

68 lines
1.5 KiB
Go

package db_test
import (
"testing"
"allaboutapps.dev/aw/go-starter/internal/models"
"allaboutapps.dev/aw/go-starter/internal/test"
"allaboutapps.dev/aw/go-starter/internal/util/db"
"github.com/aarondl/sqlboiler/v4/queries"
"github.com/aarondl/sqlboiler/v4/queries/qm"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestOr(t *testing.T) {
age := 42
filter := UserFilter{
Name: Name{
PublicName: PublicName{
First: "Max",
},
MiddleName: "Gustav",
Lastname: "Muster",
},
Country: "Austria",
City: "Vienna",
Scopes: []string{"app", "user_info"},
Age: &age,
}
qms := []qm.QueryMod{
qm.Where("id = ?", 123),
qm.Where("username = ?", "max.muster@example.org"),
db.WhereJSON("users", "profile", filter),
}
sql, args := buildOrQuery(t, qms)
test.Snapshoter.Label("SQL").Save(t, sql)
test.Snapshoter.Label("Args").Save(t, args...)
}
func TestOrSingle(t *testing.T) {
q := qm.Where("username = ?", "max.muster@example.org")
qms := db.CombineWithOr([]qm.QueryMod{q})
require.Len(t, qms, 1)
assert.Equal(t, q, qms[0])
}
func TestOrEmpty(t *testing.T) {
qms := db.CombineWithOr([]qm.QueryMod{})
assert.Empty(t, qms)
qms = db.CombineWithOr(nil)
assert.Empty(t, qms)
}
func buildOrQuery(t *testing.T, qms []qm.QueryMod) (string, []interface{}) {
t.Helper()
o := db.CombineWithOr(qms)
require.NotEmpty(t, o)
o = append(o, qm.Select("*"), qm.From("users"))
q := models.NewQuery(o...)
return queries.BuildQuery(q)
}