From 31488fa59ce1df925a3d6f2f27f7294eefbc0c05 Mon Sep 17 00:00:00 2001 From: inoas Date: Fri, 10 Oct 2025 16:37:29 +0200 Subject: [PATCH 1/4] prepare unit test --- test/pog_test.gleam | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/pog_test.gleam b/test/pog_test.gleam index 3a6f7ad..68b9fe9 100644 --- a/test/pog_test.gleam +++ b/test/pog_test.gleam @@ -184,6 +184,41 @@ pub fn selecting_rows_test() { disconnect(db) } +pub fn selecting_values_test() { + let db = start_default() + + let assert Ok(returned) = + pog.query( + "SELECT $1 AS selected_bool, + $2 AS selected_int, + $3 AS selected_float, + $4 AS selected_text, + $5 AS selected_calendar_date", + ) + |> pog.parameter(pog.bool(True)) + |> pog.parameter(pog.int(3)) + |> pog.parameter(pog.float(3.0)) + |> pog.parameter(pog.text("Hello Joe!")) + |> pog.parameter(pog.calendar_date(calendar.Date(2021, calendar.March, 13))) + |> pog.returning({ + use x0 <- decode.field(0, decode.bool) + use x1 <- decode.field(1, decode.int) + use x2 <- decode.field(2, decode.float) + use x3 <- decode.field(3, decode.string) + use x4 <- decode.field(4, pog.calendar_date_decoder()) + decode.success(#(x0, x1, x2, x3, x4)) + }) + |> pog.execute(db.data) + + assert returned.count == 1 + assert returned.rows + == [ + #(True, 2, 3.0, "Hello Joe!", calendar.Date(2021, calendar.March, 13)), + ] + + disconnect(db) +} + pub fn invalid_sql_test() { let db = start_default() let sql = "select select" From 33c1c35700c4c11484972f717bc4520e9ff89628 Mon Sep 17 00:00:00 2001 From: inoas <20972207+inoas@users.noreply.github.com> Date: Sun, 19 Oct 2025 21:28:50 +0200 Subject: [PATCH 2/4] new line --- test/pog_test.gleam | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/pog_test.gleam b/test/pog_test.gleam index 68b9fe9..28ebc1c 100644 --- a/test/pog_test.gleam +++ b/test/pog_test.gleam @@ -189,7 +189,8 @@ pub fn selecting_values_test() { let assert Ok(returned) = pog.query( - "SELECT $1 AS selected_bool, + "SELECT + $1 AS selected_bool, $2 AS selected_int, $3 AS selected_float, $4 AS selected_text, From 19f1b4521ad8821efe0baede53bb042cf24b3716 Mon Sep 17 00:00:00 2001 From: inoas <{ID}+{username}@users.noreply.github.com> Date: Thu, 23 Oct 2025 19:41:50 +0200 Subject: [PATCH 3/4] separate unit tests --- test/pog_test.gleam | 80 ++++++++++++++++++++++++++++++++------------- 1 file changed, 58 insertions(+), 22 deletions(-) diff --git a/test/pog_test.gleam b/test/pog_test.gleam index 28ebc1c..5db72f8 100644 --- a/test/pog_test.gleam +++ b/test/pog_test.gleam @@ -184,38 +184,74 @@ pub fn selecting_rows_test() { disconnect(db) } -pub fn selecting_values_test() { +pub fn selecting_bool_value() { let db = start_default() let assert Ok(returned) = - pog.query( - "SELECT - $1 AS selected_bool, - $2 AS selected_int, - $3 AS selected_float, - $4 AS selected_text, - $5 AS selected_calendar_date", - ) + pog.query("SELECT $1") |> pog.parameter(pog.bool(True)) - |> pog.parameter(pog.int(3)) - |> pog.parameter(pog.float(3.0)) - |> pog.parameter(pog.text("Hello Joe!")) - |> pog.parameter(pog.calendar_date(calendar.Date(2021, calendar.March, 13))) |> pog.returning({ use x0 <- decode.field(0, decode.bool) - use x1 <- decode.field(1, decode.int) - use x2 <- decode.field(2, decode.float) - use x3 <- decode.field(3, decode.string) - use x4 <- decode.field(4, pog.calendar_date_decoder()) - decode.success(#(x0, x1, x2, x3, x4)) + decode.success(#(x0)) }) |> pog.execute(db.data) assert returned.count == 1 - assert returned.rows - == [ - #(True, 2, 3.0, "Hello Joe!", calendar.Date(2021, calendar.March, 13)), - ] + assert returned.rows == [#(True)] + + disconnect(db) +} + +pub fn selecting_int_value() { + let db = start_default() + + let assert Ok(returned) = + pog.query("SELECT $1") + |> pog.parameter(pog.int(42)) + |> pog.returning({ + use x0 <- decode.field(0, decode.int) + decode.success(#(x0)) + }) + |> pog.execute(db.data) + + assert returned.count == 1 + assert returned.rows == [#(42)] + + disconnect(db) +} + +pub fn selecting_float_value() { + let db = start_default() + + let assert Ok(returned) = + pog.query("SELECT $1") + |> pog.parameter(pog.float(42.0)) + |> pog.returning({ + use x0 <- decode.field(0, decode.float) + decode.success(#(x0)) + }) + |> pog.execute(db.data) + + assert returned.count == 1 + assert returned.rows == [#(42.0)] + + disconnect(db) +} + +pub fn selecting_calendar_date_value() { + let db = start_default() + + let assert Ok(returned) = + pog.query("SELECT $1") + |> pog.parameter(pog.calendar_date(calendar.Date(2021, calendar.March, 13))) + |> pog.returning({ + use x0 <- decode.field(0, pog.calendar_date_decoder()) + decode.success(#(x0)) + }) + |> pog.execute(db.data) + + assert returned.count == 1 + assert returned.rows == [#(calendar.Date(2021, calendar.March, 13))] disconnect(db) } From 889ab43a468390466ca419c1bfdc3fddda727458 Mon Sep 17 00:00:00 2001 From: inoas <{ID}+{username}@users.noreply.github.com> Date: Sat, 25 Oct 2025 15:53:30 +0200 Subject: [PATCH 4/4] fix test suite --- test/pog_test.gleam | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/pog_test.gleam b/test/pog_test.gleam index 5db72f8..c425e88 100644 --- a/test/pog_test.gleam +++ b/test/pog_test.gleam @@ -184,7 +184,7 @@ pub fn selecting_rows_test() { disconnect(db) } -pub fn selecting_bool_value() { +pub fn selecting_bool_value_test() { let db = start_default() let assert Ok(returned) = @@ -202,7 +202,7 @@ pub fn selecting_bool_value() { disconnect(db) } -pub fn selecting_int_value() { +pub fn selecting_int_value_test() { let db = start_default() let assert Ok(returned) = @@ -220,7 +220,7 @@ pub fn selecting_int_value() { disconnect(db) } -pub fn selecting_float_value() { +pub fn selecting_float_value_test() { let db = start_default() let assert Ok(returned) = @@ -238,7 +238,7 @@ pub fn selecting_float_value() { disconnect(db) } -pub fn selecting_calendar_date_value() { +pub fn selecting_calendar_date_value_test() { let db = start_default() let assert Ok(returned) =