chore: run doctests in parallel

Runs the doctests much faster, which is potentially useful in
combination with postgrest-watch for local development.

This implies that doctests run on compiled code, not in a GHCi session,
which has some implications:
- Only exported functions can be tested.
- Imports need to be made explicit in doctests themselves.

On the flipside, this would allow us to potentially include doctest
results in code coverage, I believe.

This change is a requirement to vendor hasql, which otherwise breaks the
existing doctests: hasql contains a .hsc file, which *needs* to be
compiled - not interpreted - to make the tests work.
This commit is contained in:
Wolfgang Walther
2026-07-14 06:55:32 +00:00
parent aa6c19ebda
commit 44e15e4e9b
13 changed files with 55 additions and 31 deletions
+4 -24
View File
@@ -1,27 +1,7 @@
module Main (main) where
import Test.DocTest (doctest)
import Protolude
module Main where
import System.Environment (getArgs)
import Test.DocTest (mainFromCabal)
main :: IO ()
main =
doctest
[ "-XOverloadedStrings"
, "-XNoImplicitPrelude"
, "-XStandaloneDeriving"
, "-XDuplicateRecordFields"
, "-isrc"
, "src/PostgREST/ApiRequest/Preferences.hs"
, "src/PostgREST/ApiRequest/QueryParams.hs"
, "src/PostgREST/Config.hs"
, "src/PostgREST/Error.hs"
, "src/PostgREST/MediaType.hs"
, "src/PostgREST/Network.hs"
, "src/PostgREST/Plan.hs"
, "src/PostgREST/Query/SqlFragment.hs"
, "src/PostgREST/Response.hs"
, "src/PostgREST/Response/Performance.hs"
, "src/PostgREST/SchemaCache/Identifiers.hs"
]
main = mainFromCabal "postgrest" =<< getArgs