git.iko.soy/rowtype-yoga/purescript-yoga-postgres
on main help sign in
18fc598Mark
test/Main.purs+3
@@ -14,6 +14,7 @@ import Test.Spec.Assertions (shouldEqual, shouldSatisfy)
14import Test.Spec.Reporter.Console (consoleReporter)
14import Test.Spec.Reporter.Console (consoleReporter)
15import Test.Spec.Runner (runSpec)
15import Test.Spec.Runner (runSpec)
16import Yoga.Test.Docker as Docker
16import Yoga.Test.Docker as Docker
17+import Test.Postgres.Schema as Schema
17import Yoga.Postgres as PG
18import Yoga.Postgres as PG
18
19
19-- Test configuration
20-- Test configuration
@@ -91,6 +92,8 @@ setupTableWithConstraints conn = do
91
92
92spec :: Spec Unit
93spec :: Spec Unit
93spec = do
94spec = do
95+ Schema.spec
96+
94 describe "Yoga.Postgres Integration Tests" do
97 describe "Yoga.Postgres Integration Tests" do
95
98
96 -- Connection Management Tests
99 -- Connection Management Tests
test/Schema.purs+18
@@ -3,7 +3,10 @@ module Test.Postgres.Schema where
3import Prelude
3import Prelude
4
4
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
8
11
9-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
12-- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
@@ -81,3 +84,18 @@ ddl = createTableDDL @UsersTable
81
84
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
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")