[🤖] Add Unit-Tests
Build Docker and Deploy / Run goext test-suite (push) Successful in 1m34s

This commit is contained in:
2026-04-27 10:46:08 +02:00
parent dad0e3240d
commit 02d6894ec6
116 changed files with 18795 additions and 1 deletions
+85
View File
@@ -0,0 +1,85 @@
package sq
import (
"git.blackforestbytes.com/BlackForestBytes/goext/tst"
"testing"
)
func TestJsonObjMarshalToDB(t *testing.T) {
j := JsonObj{}
out, err := j.MarshalToDB(JsonObj{"key": "value", "num": float64(7)})
tst.AssertNoErr(t, err)
// JSON map ordering is not guaranteed - parse and verify
roundtrip, err := j.UnmarshalToModel(out)
tst.AssertNoErr(t, err)
tst.AssertStrRepEqual(t, roundtrip["key"], "value")
tst.AssertStrRepEqual(t, roundtrip["num"], float64(7))
}
func TestJsonObjUnmarshalToModelInvalid(t *testing.T) {
j := JsonObj{}
_, err := j.UnmarshalToModel("{not valid json}")
if err == nil {
t.Fatal("expected error for invalid JSON")
}
}
func TestJsonArrMarshalToDB(t *testing.T) {
j := JsonArr{}
out, err := j.MarshalToDB(JsonArr{float64(1), "two", true})
tst.AssertNoErr(t, err)
tst.AssertEqual(t, `[1,"two",true]`, out)
}
func TestJsonArrRoundtrip(t *testing.T) {
j := JsonArr{}
out, err := j.MarshalToDB(JsonArr{"a", "b", "c"})
tst.AssertNoErr(t, err)
r, err := j.UnmarshalToModel(out)
tst.AssertNoErr(t, err)
tst.AssertEqual(t, 3, len(r))
tst.AssertEqual(t, "a", r[0])
tst.AssertEqual(t, "b", r[1])
tst.AssertEqual(t, "c", r[2])
}
func TestJsonArrUnmarshalInvalid(t *testing.T) {
j := JsonArr{}
_, err := j.UnmarshalToModel("not json")
if err == nil {
t.Fatal("expected error for invalid JSON")
}
}
func TestAutoJsonRoundtrip(t *testing.T) {
type inner struct {
A int `json:"a"`
B string `json:"b"`
}
aj := AutoJson[inner]{Value: inner{A: 42, B: "foo"}}
zero := AutoJson[inner]{}
out, err := zero.MarshalToDB(aj)
tst.AssertNoErr(t, err)
tst.AssertEqual(t, `{"a":42,"b":"foo"}`, out)
r, err := zero.UnmarshalToModel(out)
tst.AssertNoErr(t, err)
tst.AssertEqual(t, 42, r.Value.A)
tst.AssertEqual(t, "foo", r.Value.B)
}
func TestAutoJsonUnmarshalInvalid(t *testing.T) {
type inner struct {
A int `json:"a"`
}
zero := AutoJson[inner]{}
_, err := zero.UnmarshalToModel("garbage")
if err == nil {
t.Fatal("expected error for invalid JSON")
}
}