@@ -19,6 +19,7 @@ import Data.Bool (bool)
19import qualified Data.ByteString.Lazy as LBS
19import qualified Data.ByteString.Lazy as LBS
20import Data.Foldable (for_)
20import Data.Foldable (for_)
21import Data.Function (fix)
21import Data.Function (fix)
22+import Data.List (isInfixOf)
22import qualified Data.Map as Map
23import qualified Data.Map as Map
23import Data.Semigroup ((<>))
24import Data.Semigroup ((<>))
24import qualified Data.Set as Set
25import qualified Data.Set as Set
@@ -205,6 +206,22 @@ main' isVerbose httpManager obeliskRepoReadOnly = withInitCache $ \initCache ->
205 it "works in root directory" $ inTmpObInit $ \_ -> testObRunInDir' Nothing httpManager
206 it "works in root directory" $ inTmpObInit $ \_ -> testObRunInDir' Nothing httpManager
206 it "works in sub directory" $ inTmpObInit $ \_ -> testObRunInDir' (Just "frontend") httpManager
207 it "works in sub directory" $ inTmpObInit $ \_ -> testObRunInDir' (Just "frontend") httpManager
209+ describe "ob repl" $ do
210+ it "accepts stdin commands" $ inTmpObInit $ \_ -> do
211+ setStdin "print 3\n:q"
212+ output <- runOb ["repl"]
213+ liftIO $ assertBool "" $
214+ [ "*Obelisk.Run Obelisk.Run Frontend Backend> 3"
215+ , "*Obelisk.Run Obelisk.Run Frontend Backend> Leaving GHCi."
216+ ] `isInfixOf` T.lines (T.strip output)
217+ it "works with custom Prelude" $ inTmpObInit $ \_ -> do
218+ writefile "common/src/Prelude.hs"
219+ "{-# LANGUAGE PackageImports #-} module Prelude (module X) where import \"base\" Prelude as X"
221+ output <- runOb ["repl"]
222+ liftIO $ assertBool "" $
223+ "*Obelisk.Run Obelisk.Run Frontend Backend> Leaving GHCi." `T.isInfixOf` output
208 describe "obelisk project" $ parallel $ do
225 describe "obelisk project" $ parallel $ do
209 it "can build obelisk command" $ inTmpObInit $ \_ -> nixBuild ["-A", "command" , toTextIgnore obeliskRepoReadOnly]
226 it "can build obelisk command" $ inTmpObInit $ \_ -> nixBuild ["-A", "command" , toTextIgnore obeliskRepoReadOnly]
210 it "can build obelisk skeleton" $ inTmpObInit $ \_ -> nixBuild ["-A", "skeleton", toTextIgnore obeliskRepoReadOnly]
227 it "can build obelisk skeleton" $ inTmpObInit $ \_ -> nixBuild ["-A", "skeleton", toTextIgnore obeliskRepoReadOnly]