Fix postgres tests
This commit is contained in:
parent
75bf47936d
commit
9604b25833
@ -23,12 +23,14 @@ install:
|
|||||||
- export PATH=$HOME/.local/bin:$PATH
|
- 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'
|
- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
|
||||||
- stack --version
|
- stack --version
|
||||||
|
- createuser -s --no-password test
|
||||||
|
- createdb -O test test
|
||||||
|
|
||||||
script:
|
script:
|
||||||
- stack setup
|
- stack setup
|
||||||
- stack update
|
- stack update
|
||||||
- stack build
|
- stack build
|
||||||
- stack test --flag esqueleto:-postgresql
|
- stack test --flag esqueleto:postgresql
|
||||||
- stack test --flag esqueleto:-mysql
|
- stack test --flag esqueleto:-mysql
|
||||||
|
|
||||||
cache:
|
cache:
|
||||||
|
|||||||
@ -20,7 +20,6 @@ import Database.Esqueleto.Internal.Sql
|
|||||||
arrayAgg :: SqlExpr (Value a) -> SqlExpr (Value [a])
|
arrayAgg :: SqlExpr (Value a) -> SqlExpr (Value [a])
|
||||||
arrayAgg = unsafeSqlFunction "array_agg"
|
arrayAgg = unsafeSqlFunction "array_agg"
|
||||||
|
|
||||||
|
|
||||||
-- | (@string_agg@) Concatenate input values separated by a
|
-- | (@string_agg@) Concatenate input values separated by a
|
||||||
-- delimiter.
|
-- delimiter.
|
||||||
--
|
--
|
||||||
|
|||||||
17
test/Test.hs
17
test/Test.hs
@ -28,6 +28,9 @@ import Data.Monoid ((<>))
|
|||||||
import Database.Esqueleto
|
import Database.Esqueleto
|
||||||
#if defined (WITH_POSTGRESQL)
|
#if defined (WITH_POSTGRESQL)
|
||||||
import Database.Persist.Postgresql (withPostgresqlConn)
|
import Database.Persist.Postgresql (withPostgresqlConn)
|
||||||
|
import Data.Ord (comparing)
|
||||||
|
import Control.Arrow ((&&&))
|
||||||
|
import qualified Database.Esqueleto.PostgreSQL as EP
|
||||||
#elif defined (WITH_MYSQL)
|
#elif defined (WITH_MYSQL)
|
||||||
import Database.Persist.MySQL ( withMySQLConn
|
import Database.Persist.MySQL ( withMySQLConn
|
||||||
, connectHost
|
, connectHost
|
||||||
@ -825,7 +828,7 @@ main = do
|
|||||||
distinctOn [don (bp ^. BlogPostAuthorId)] $ do
|
distinctOn [don (bp ^. BlogPostAuthorId)] $ do
|
||||||
orderBy [asc (bp ^. BlogPostAuthorId), desc (bp ^. BlogPostTitle)]
|
orderBy [asc (bp ^. BlogPostAuthorId), desc (bp ^. BlogPostTitle)]
|
||||||
return bp
|
return bp
|
||||||
liftIO $ ret `shouldBe` sortBy (comparing (blogPostAuthorId . entityVal)) [bpB, bpC]
|
liftIO $ ret `shouldBe` L.sortBy (comparing (blogPostAuthorId . entityVal)) [bpB, bpC]
|
||||||
|
|
||||||
let slightlyLessSimpleTest q =
|
let slightlyLessSimpleTest q =
|
||||||
run $ do
|
run $ do
|
||||||
@ -838,7 +841,7 @@ main = do
|
|||||||
from $ \bp ->
|
from $ \bp ->
|
||||||
q bp $ return bp
|
q bp $ return bp
|
||||||
let cmp = (blogPostAuthorId &&& blogPostTitle) . entityVal
|
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)" $
|
it "works on a slightly less simple example (two distinctOn calls, orderBy)" $
|
||||||
slightlyLessSimpleTest $ \bp act ->
|
slightlyLessSimpleTest $ \bp act ->
|
||||||
distinctOn [don (bp ^. BlogPostAuthorId)] $
|
distinctOn [don (bp ^. BlogPostAuthorId)] $
|
||||||
@ -1181,7 +1184,6 @@ main = do
|
|||||||
return p
|
return p
|
||||||
liftIO $ ret `shouldBe` [ Entity p2k p2 ]
|
liftIO $ ret `shouldBe` [ Entity p2k p2 ]
|
||||||
|
|
||||||
|
|
||||||
describe "list fields" $ do
|
describe "list fields" $ do
|
||||||
-- <https://github.com/prowdsponsor/esqueleto/issues/100>
|
-- <https://github.com/prowdsponsor/esqueleto/issues/100>
|
||||||
it "can update list fields" $
|
it "can update list fields" $
|
||||||
@ -1365,9 +1367,7 @@ main = do
|
|||||||
let people = [p1, p2, p3, p4, p5]
|
let people = [p1, p2, p3, p4, p5]
|
||||||
mapM_ insert people
|
mapM_ insert people
|
||||||
[Value ret] <-
|
[Value ret] <-
|
||||||
select $
|
select . from $ \p -> return (EP.arrayAgg (p ^. PersonName))
|
||||||
from $ \p -> do
|
|
||||||
return (EP.arrayAgg (p ^. PersonName))
|
|
||||||
liftIO $ L.sort ret `shouldBe` L.sort (map personName people)
|
liftIO $ L.sort ret `shouldBe` L.sort (map personName people)
|
||||||
|
|
||||||
it "stringAgg looks sane" $
|
it "stringAgg looks sane" $
|
||||||
@ -1410,9 +1410,14 @@ cleanDB
|
|||||||
:: (forall m. RunDbMonad m
|
:: (forall m. RunDbMonad m
|
||||||
=> SqlPersistT (R.ResourceT m) ())
|
=> SqlPersistT (R.ResourceT m) ())
|
||||||
cleanDB = do
|
cleanDB = do
|
||||||
|
delete $ from $ \(_ :: SqlExpr (Entity Foo)) -> return ()
|
||||||
|
delete $ from $ \(_ :: SqlExpr (Entity Bar)) -> return ()
|
||||||
|
|
||||||
delete $ from $ \(_ :: SqlExpr (Entity BlogPost)) -> return ()
|
delete $ from $ \(_ :: SqlExpr (Entity BlogPost)) -> return ()
|
||||||
delete $ from $ \(_ :: SqlExpr (Entity Follow)) -> return ()
|
delete $ from $ \(_ :: SqlExpr (Entity Follow)) -> return ()
|
||||||
delete $ from $ \(_ :: SqlExpr (Entity Person)) -> return ()
|
delete $ from $ \(_ :: SqlExpr (Entity Person)) -> return ()
|
||||||
|
|
||||||
|
delete $ from $ \(_ :: SqlExpr (Entity CcList)) -> return ()
|
||||||
|
|
||||||
delete $ from $ \(_ :: SqlExpr (Entity ArticleTag)) -> return ()
|
delete $ from $ \(_ :: SqlExpr (Entity ArticleTag)) -> return ()
|
||||||
delete $ from $ \(_ :: SqlExpr (Entity Article)) -> return ()
|
delete $ from $ \(_ :: SqlExpr (Entity Article)) -> return ()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user