From c3c90379b7aee3978e596f55602924c571f9595a Mon Sep 17 00:00:00 2001 From: Jens Nolte <git@queezle.net> Date: Mon, 30 Aug 2021 01:28:31 +0200 Subject: [PATCH] Add tests --- test/Quasar/DisposableSpec.hs | 9 ++++++++- test/Quasar/ObservableSpec.hs | 19 +++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/test/Quasar/DisposableSpec.hs b/test/Quasar/DisposableSpec.hs index 66ff79f..8acad69 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 0ec52eb..7dd4e12 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 -- GitLab