packages feed

sqlite-simple-0.4.16.0: test/QQ.hs

{-# LANGUAGE QuasiQuotes #-}

module QQ (
     testSimpleQQ
   , testMultiLinedQQ
   ) where

import Common
import Database.SQLite.Simple.QQ (sql)

testSimpleQQ :: TestEnv -> Test
testSimpleQQ TestEnv{..} = TestCase $ do
  q <- query_ conn "SELECT 1+1" :: IO [Only Int]
  qq <- query_ conn [sql|
                        SELECT 1 + 1
                        |] :: IO [Only Int]
  assertEqual "result" q qq


testMultiLinedQQ :: TestEnv -> Test
testMultiLinedQQ TestEnv{..} = TestCase $ do
  execute_ conn "CREATE TABLE testQQ (id INTEGER PRIMARY KEY, t TEXT)"
  execute_ conn "INSERT INTO testQQ (t) VALUES ('test string')"
  q <- query_ conn "SELECT t FROM testQQ" :: IO [Only String]
  qq <- query_ conn [sql|
    SELECT
      t
    FROM
      testQQ

    |] :: IO [Only String]
  assertEqual "result" q qq