@@ -42,11 +42,11 @@ insertSQL = insertSQLFor @UsersTable
4242-- Phase 4: Type-safe SELECT
4343-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4444
45−-- allUsers :: PG.Connection -> Aff (Either String (Array { id :: Int, name :: String, email :: String, age :: Maybe Int }))
46−-- allUsers conn = selectAll @UsersTable conn
45+selectAllSQL :: String
46+selectAllSQL = selectAllSQLFor @UsersTable
4747
48−-- userById :: PG.Connection -> Aff (Either String (Array { id :: Int, name :: String, email :: String, age :: Maybe Int }))
49−-- userById conn = selectWhere @UsersTable { id: 1 } conn
48+selectWhereSQL :: String
49+selectWhereSQL = selectWhereSQLFor @UsersTable @(id :: Int)
5050
5151-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5252-- Phase 5: Type-level defaults
@@ -97,8 +97,14 @@ spec = do
9797 ddl `shouldSatisfy` contains (Pattern "age INTEGER,")
9898
9999 describe "INSERT SQL" do
100− it "generates INSERT skipping PrimaryKey columns" do
100+ it "generates INSERT skipping AutoIncrement columns" do
101101 insertSQL `shouldSatisfy` contains (Pattern "INSERT INTO users")
102102 insertSQL `shouldSatisfy` contains (Pattern "(age, email, name)")
103103 insertSQL `shouldSatisfy` contains (Pattern "VALUES ($1, $2, $3)")
104104 insertSQL `shouldSatisfy` contains (Pattern "RETURNING *")
105+
106+ describe "SELECT SQL" do
107+ it "generates SELECT ALL" do
108+ selectAllSQL `shouldEqual` "SELECT * FROM users"
109+ it "generates SELECT WHERE" do
110+ selectWhereSQL `shouldEqual` "SELECT * FROM users WHERE id = $1"