diff options
author | Ben Sima <ben@bsima.me> | 2021-01-15 22:18:03 -0500 |
---|---|---|
committer | Ben Sima <ben@bsima.me> | 2021-01-15 22:18:03 -0500 |
commit | 4ea4faa4f6405801de19d0ea56e8bc29aa4362e1 (patch) | |
tree | 9028fa5b67d7ee57176e48e589aac1972c37efcb /Biz/Que/Host.hs | |
parent | e77cdc025b0e80049344f258d9ca170d0953d0d7 (diff) |
Add bild --test
This argument will run the tests for an output after building. It's active in
'ci' so running that will ensure tests are passing. This way testing a
namespace and building a namespace are as close together as possible, so
presumably it will be that much easier to write good tests.
Diffstat (limited to 'Biz/Que/Host.hs')
-rw-r--r-- | Biz/Que/Host.hs | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/Biz/Que/Host.hs b/Biz/Que/Host.hs index f41c683..ce3f5da 100644 --- a/Biz/Que/Host.hs +++ b/Biz/Que/Host.hs @@ -1,6 +1,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE QuasiQuotes #-} {-# LANGUAGE NoImplicitPrelude #-} -- | Interprocess communication @@ -14,10 +15,13 @@ -- : out que-server -- -- : dep async +-- : dep docopt -- : dep envy -- : dep protolude -- : dep scotty -- : dep stm +-- : dep tasty +-- : dep tasty-hunit -- : dep unagi-chan -- : dep unordered-containers module Biz.Que.Host @@ -26,6 +30,9 @@ module Biz.Que.Host where import Alpha hiding (gets, modify, poll) +import qualified Biz.Cli as Cli +import Biz.Test ((@=?)) +import qualified Biz.Test as Test import qualified Control.Concurrent.Go as Go import qualified Control.Concurrent.STM as STM import qualified Control.Exception as Exception @@ -49,7 +56,10 @@ import qualified Prelude {-# ANN module ("HLint: ignore Reduce duplication" :: Prelude.String) #-} main :: IO () -main = Exception.bracket startup shutdown <| uncurry Warp.run +main = Cli.main <| Cli.Plan help move test + +move :: Cli.Arguments -> IO () +move _ = Exception.bracket startup shutdown <| uncurry Warp.run where startup = Envy.decodeWithDefaults Envy.defConfig >>= \c -> do @@ -64,6 +74,19 @@ main = Exception.bracket startup shutdown <| uncurry Warp.run shutdown :: a -> IO a shutdown = pure <. identity +help :: Cli.Docopt +help = + [Cli.docopt| +que-server + +Usage: + que-server + que-server test +|] + +test :: Test.Tree +test = Test.group "Biz.Que.Host" [Test.unit "id" <| 1 @=? (1 :: Integer)] + newtype App a = App { runApp :: ReaderT (STM.TVar AppState) IO a } |