@@ -3,7 +3,10 @@ module Test.Postgres.Schema where
3import Prelude
3import Prelude
5import Data.Maybe (Maybe)
5import Data.Maybe (Maybe)
6+import Data.String (contains, Pattern(..))
6import Data.Tuple.Nested (type (/\))
7import Data.Tuple.Nested (type (/\))
8+import Test.Spec (Spec, describe, it)
9+import Test.Spec.Assertions (shouldEqual, shouldSatisfy)
7import Yoga.Postgres.Schema
10import Yoga.Postgres.Schema
9-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -81,3 +84,18 @@ ddl = createTableDDL @UsersTable
82-- deleteResult :: PG.Connection -> Aff Int
85-- deleteResult :: PG.Connection -> Aff Int
83-- deleteResult conn = delete @UsersTable { id: 1 } conn
86-- deleteResult conn = delete @UsersTable { id: 1 } conn
88+-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90+-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
95+ describe "CREATE TABLE DDL" do
96+ it "generates correct DDL for UsersTable" do
97+ ddl `shouldSatisfy` contains (Pattern "CREATE TABLE users")
98+ ddl `shouldSatisfy` contains (Pattern "id INTEGER NOT NULL PRIMARY KEY")
99+ ddl `shouldSatisfy` contains (Pattern "name TEXT NOT NULL")
100+ ddl `shouldSatisfy` contains (Pattern "email TEXT NOT NULL UNIQUE")
101+ ddl `shouldSatisfy` contains (Pattern "age INTEGER")