diff --git a/test/Quasar/DisposableSpec.hs b/test/Quasar/DisposableSpec.hs index 66ff79ff1d12f25dc837c601589aa2e6c8bf797d..8acad6937b62c8a0bbb2c08143fe6f1e861ee97d 100644 --- a/test/Quasar/DisposableSpec.hs +++ b/test/Quasar/DisposableSpec.hs @@ -88,11 +88,18 @@ spec = parallel $ do attachDisposeAction_ resourceManager $ toAwaitable avar <$ putAsyncVar_ avar () pure () :: IO () + it "re-throws an exception" $ do + shouldThrow + do + withResourceManager \_ -> + throwIO TestException + \TestException -> True + it "re-throws an exception from a dispose action" $ do shouldThrow do withResourceManager \resourceManager -> - attachDisposeAction resourceManager $ throwIO $ TestException + attachDisposeAction resourceManager $ throwIO TestException \TestException -> True it "can attach an disposable that is disposed asynchronously" $ do diff --git a/test/Quasar/ObservableSpec.hs b/test/Quasar/ObservableSpec.hs index 0ec52eb42cf36728fe31f9080ce3ee2694fda9b2..7dd4e12e7ab26d219910cd46eeebfe61f06e0858 100644 --- a/test/Quasar/ObservableSpec.hs +++ b/test/Quasar/ObservableSpec.hs @@ -1,17 +1,28 @@ module Quasar.ObservableSpec (spec) where -import Quasar.Observable - -import Control.Monad (void) import Data.IORef -import Prelude +import Quasar.Prelude +import Quasar.Disposable +import Quasar.Observable import Test.Hspec spec :: Spec spec = do + observableSpec mergeObservableSpec +observableSpec :: Spec +observableSpec = parallel do + describe "Observable" do + it "works" $ io do + shouldReturn + do + withOnResourceManager do + observeWhile (pure () :: Observable ()) toObservableUpdate + () + + mergeObservableSpec :: Spec mergeObservableSpec = do describe "mergeObservable" $ parallel $ do