From 9604b25833e0f1454c6db5cdb410002fdcb918ac Mon Sep 17 00:00:00 2001 From: Chris Coffey Date: Sat, 4 Feb 2017 11:49:05 -0500 Subject: [PATCH] Fix postgres tests --- .travis.yml | 4 +++- src/Database/Esqueleto/PostgreSQL.hs | 1 - test/Test.hs | 17 +++++++++++------ 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index ae66637..737604e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,12 +23,14 @@ install: - export PATH=$HOME/.local/bin:$PATH - travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack' - stack --version + - createuser -s --no-password test + - createdb -O test test script: - stack setup - stack update - stack build - - stack test --flag esqueleto:-postgresql + - stack test --flag esqueleto:postgresql - stack test --flag esqueleto:-mysql cache: diff --git a/src/Database/Esqueleto/PostgreSQL.hs b/src/Database/Esqueleto/PostgreSQL.hs index f71127d..0a31cc2 100644 --- a/src/Database/Esqueleto/PostgreSQL.hs +++ b/src/Database/Esqueleto/PostgreSQL.hs @@ -20,7 +20,6 @@ import Database.Esqueleto.Internal.Sql arrayAgg :: SqlExpr (Value a) -> SqlExpr (Value [a]) arrayAgg = unsafeSqlFunction "array_agg" - -- | (@string_agg@) Concatenate input values separated by a -- delimiter. -- diff --git a/test/Test.hs b/test/Test.hs index 795ad03..cb7189b 100644 --- a/test/Test.hs +++ b/test/Test.hs @@ -28,6 +28,9 @@ import Data.Monoid ((<>)) import Database.Esqueleto #if defined (WITH_POSTGRESQL) import Database.Persist.Postgresql (withPostgresqlConn) +import Data.Ord (comparing) +import Control.Arrow ((&&&)) +import qualified Database.Esqueleto.PostgreSQL as EP #elif defined (WITH_MYSQL) import Database.Persist.MySQL ( withMySQLConn , connectHost @@ -825,7 +828,7 @@ main = do distinctOn [don (bp ^. BlogPostAuthorId)] $ do orderBy [asc (bp ^. BlogPostAuthorId), desc (bp ^. BlogPostTitle)] return bp - liftIO $ ret `shouldBe` sortBy (comparing (blogPostAuthorId . entityVal)) [bpB, bpC] + liftIO $ ret `shouldBe` L.sortBy (comparing (blogPostAuthorId . entityVal)) [bpB, bpC] let slightlyLessSimpleTest q = run $ do @@ -838,7 +841,7 @@ main = do from $ \bp -> q bp $ return bp let cmp = (blogPostAuthorId &&& blogPostTitle) . entityVal - liftIO $ ret `shouldBe` sortBy (comparing cmp) [bpA, bpB, bpC] + liftIO $ ret `shouldBe` L.sortBy (comparing cmp) [bpA, bpB, bpC] it "works on a slightly less simple example (two distinctOn calls, orderBy)" $ slightlyLessSimpleTest $ \bp act -> distinctOn [don (bp ^. BlogPostAuthorId)] $ @@ -1181,7 +1184,6 @@ main = do return p liftIO $ ret `shouldBe` [ Entity p2k p2 ] - describe "list fields" $ do -- it "can update list fields" $ @@ -1365,9 +1367,7 @@ main = do let people = [p1, p2, p3, p4, p5] mapM_ insert people [Value ret] <- - select $ - from $ \p -> do - return (EP.arrayAgg (p ^. PersonName)) + select . from $ \p -> return (EP.arrayAgg (p ^. PersonName)) liftIO $ L.sort ret `shouldBe` L.sort (map personName people) it "stringAgg looks sane" $ @@ -1410,9 +1410,14 @@ cleanDB :: (forall m. RunDbMonad m => SqlPersistT (R.ResourceT m) ()) cleanDB = do + delete $ from $ \(_ :: SqlExpr (Entity Foo)) -> return () + delete $ from $ \(_ :: SqlExpr (Entity Bar)) -> return () + delete $ from $ \(_ :: SqlExpr (Entity BlogPost)) -> return () delete $ from $ \(_ :: SqlExpr (Entity Follow)) -> return () delete $ from $ \(_ :: SqlExpr (Entity Person)) -> return () + + delete $ from $ \(_ :: SqlExpr (Entity CcList)) -> return () delete $ from $ \(_ :: SqlExpr (Entity ArticleTag)) -> return () delete $ from $ \(_ :: SqlExpr (Entity Article)) -> return ()