module Main (main) where import Data.Int import Test.Tasty import Test.Tasty.HUnit import Test.Database.Hasql import Hasql.Connection as HC import Hasql.Decoders as HD import Hasql.Encoders as HE import Hasql.Statement as HST main :: IO () main = defaultMain $ withResource (startupPostgres init_script) (teardownPostgres) $ \mkDb -> withResource (mkDb >>= allocateConnection) (freeConnection) $ \conn -> tests conn where init_script = "create table a (id int8 not null generated always as identity primary key)" tests :: IO HC.Connection -> TestTree tests mkConn = testGroup "explain-tests" [ testCase "select 1" $ mkConn >>= explain select1 ] select1 :: HST.Statement () Int64 select1 = HST.Statement sql encoder decoder False where sql = "select 1::int8" encoder = HE.noParams decoder = HD.singleRow $ HD.column $ HD.nonNullable HD.int8