ルートの単体テスト中に問題が発生しました。Scotty、Persistent、および Hspec-WAI。
Yesod や Spock とは異なり、Scotty にはデータベース ハンドラを格納する適切な場所がありません。データベースを起動し、データベース プールをローカル変数として保持し、その変数を使用する 1 つの大規模な "do" を用意することで、機能するようになりました。
app :: IO ()
app = do
-- allocate_database $ \pool
-- scotty 8080 $do
-- handleSomeRoute pool
しかし、Hspec-WAI は IO 申請フォームでそれを望んでいます。
scottyApp :: ScottyM () -> IO Application
DB 接続プールを scottyApp に注入する適切な方法はありますか?