packages feed

auto-update-0.2.6: test/Control/ReaperSpec.hs

module Control.ReaperSpec (spec) where

-- import Control.Concurrent
-- import Control.Reaper
-- import Data.IORef
import Test.Hspec

-- import Test.Hspec.QuickCheck

spec :: Spec
spec = return ()

--   prop "works" $ \is -> do
--     reaper <- mkReaper defaultReaperSettings
--         { reaperAction = action
--         , reaperDelay = 1000
--         }

--     let mkTestCase i = do
--             ref <- newIORef 0
--             let expected = (abs i `mod` 10) + 1
--             reaperAdd reaper (expected, ref)
--             return (expected, ref)
--     testCases <- mapM mkTestCase is

--     let test (expected, ref) = do
--             actual <- readIORef ref
--             actual `shouldBe` (expected :: Int)
--     threadDelay 100000
--     mapM_ test testCases
--     [] <- reaperRead reaper
--     return ()

-- type Item = (Int, IORef Int)

-- action = mkListAction $ \(i, ref) -> do
--     modifyIORef ref succ
--     return $ if i > 1
--              then Just (pred i, ref)
--              else Nothing