git.iko.soy/rowtype-yoga/purescript-yoga-postgres-om
on main help sign in
commite905998de7ca9131ba329fc8918473d567d75abc authorMark <mark.eibes@gmail.com> dateTue 3 Mar 2026, 12:54 (7 months ago) parent21637b3
1 file changed+17−17
test/Test/SchemaQ.purs+17−17
test/Test/SchemaQ.purs+17−17
@@ -13,15 +13,15 @@ import Test.Spec (Spec, describe, it)
1313import Type.Proxy (Proxy(..))
1414import Yoga.Om as Om
1515import Yoga.Postgres as PG
16−import Yoga.Postgres.ClientOm (run, runOne, create)
16+import Yoga.Postgres.ClientOm (run, runOne, runExec)
1717import Yoga.Postgres.Schema (Table, PrimaryKey, AutoIncrement, Unique, Default, from, select, where_, orderBy, limit, groupBy, insert, delete, returning, returningAll, union)
1818
1919spec :: Spec Unit
2020spec = describe "Query builder" do
2121
2222 it "selects columns with a WHERE clause" $ withUsersTable do
23− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
24− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
23+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
24+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
2525 rows <- from usersTable # select @"name, email" # where_ @"role = $role" # run { role: "admin" }
2626 Array.length rows `shouldEqual` 1
2727 let
@@ -31,24 +31,24 @@ spec = describe "Query builder" do
3131 r.name `shouldEqual` "Alice"
3232
3333 it "orders and limits results" $ withUsersTable do
34− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
35− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
36− _ <- usersTable # create { name: "Carol", email: "c@t.com", role: "user" }
34+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
35+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
36+ _ <- from usersTable # insert { name: "Carol", email: "c@t.com", role: "user" } # runExec {}
3737 rows <- from usersTable # select @"name" # orderBy @"name" # limit @"2" # run {}
3838 Array.length rows `shouldEqual` 2
3939 (map _.name rows) `shouldEqual` [ "Alice", "Bob" ]
4040
4141 it "groups results" $ withUsersTable do
42− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
43− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
44− _ <- usersTable # create { name: "Carol", email: "c@t.com", role: "user" }
42+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
43+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
44+ _ <- from usersTable # insert { name: "Carol", email: "c@t.com", role: "user" } # runExec {}
4545 rows <- from usersTable # select @"role" # groupBy @"role" # orderBy @"role" # run {}
4646 (map _.role rows) `shouldEqual` [ "admin", "user" ]
4747
4848 it "filters with a BETWEEN range" $ withUsersTable do
49− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
50− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
51− _ <- usersTable # create { name: "Carol", email: "c@t.com", role: "mod" }
49+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
50+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
51+ _ <- from usersTable # insert { name: "Carol", email: "c@t.com", role: "mod" } # runExec {}
5252 rows <- from usersTable # select @"name" # where_ @"id BETWEEN $lo AND $hi" # orderBy @"id" # run { lo: 2, hi: 3 }
5353 (map _.name rows) `shouldEqual` [ "Bob", "Carol" ]
5454
@@ -59,8 +59,8 @@ spec = describe "Query builder" do
5959 (r.id > 0) `shouldEqual` true
6060
6161 it "deletes with a condition and returns the deleted rows" $ withUsersTable do
62− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
63− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
62+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
63+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
6464 rows <- from usersTable # delete # where_ @"role = $role" # returningAll # run { role: "admin" }
6565 Array.length rows `shouldEqual` 1
6666 let
@@ -70,9 +70,9 @@ spec = describe "Query builder" do
7070 r.name `shouldEqual` "Alice"
7171
7272 it "combines two queries with UNION" $ withUsersTable do
73− _ <- usersTable # create { name: "Alice", email: "a@t.com", role: "admin" }
74− _ <- usersTable # create { name: "Bob", email: "b@t.com", role: "user" }
75− _ <- usersTable # create { name: "Carol", email: "c@t.com", role: "mod" }
73+ _ <- from usersTable # insert { name: "Alice", email: "a@t.com", role: "admin" } # runExec {}
74+ _ <- from usersTable # insert { name: "Bob", email: "b@t.com", role: "user" } # runExec {}
75+ _ <- from usersTable # insert { name: "Carol", email: "c@t.com", role: "mod" } # runExec {}
7676 rows <-
7777 ( (from usersTable # select @"name" # where_ @"role = $a")
7878 `union`