@@ -3,7 +3,10 @@ module Test.Postgres.Schema where
33import Prelude
44
55import Data.Maybe (Maybe)
6+import Data.String (contains, Pattern(..))
67import Data.Tuple.Nested (type (/\))
8+import Test.Spec (Spec, describe, it)
9+import Test.Spec.Assertions (shouldEqual, shouldSatisfy)
710import Yoga.Postgres.Schema
811
912-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -81,3 +84,18 @@ ddl = createTableDDL @UsersTable
8184
8285-- deleteResult :: PG.Connection -> Aff Int
8386-- deleteResult conn = delete @UsersTable { id: 1 } conn
87+
88+-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
89+-- Spec
90+-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91+
92+spec :: Spec Unit
93+spec = do
94+ describe "Schema" do
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")