Testing

{-# LANGUAGE OverloadedStrings #-}
module Tests where
import T1QuerySerialization (t1)
1. Builds queries like
SELECT CAST(5, 'UInt8') as testSample;
via ToQueryPart type class for every supported type
2. Executes select
3. Parses the result
4. Checks if result equals initial value
import T2WriteReadEquality (t2)
1. Runs insertInto of a sample into the all supported types table
2. Runs selectFrom from the same table
3. Checks if result equals sample value
import T3Multithreading (t3)
1. Runs 10000 concurrent queries via single connection
import T4MissmatchErrors (t4)
1. Runs queries with types and names missmatch and handles error

How to run

You can manually run database and tests:
nix run .#testing

Main function

import ClickHaskell (openConnection, defaultConnectionArgs)

main :: IO ()
main = do
  connection <- openConnection defaultConnectionArgs
  mapM_
    (\runner -> runner connection) 
    [t1,t2,t3,t4]