reflex-test-host 0.1.2.1 → 0.1.2.2
raw patch · 4 files changed
+94/−13 lines, 4 filesdep ~reflex
Dependency ranges changed: reflex
Files
- ChangeLog.md +6/−0
- reflex-test-host.cabal +76/−10
- src/Reflex/Test/Monad/Host.hs +4/−0
- test/Reflex/Test/Monad/HostSpec.hs +8/−3
ChangeLog.md view
@@ -1,5 +1,11 @@ # Changelog for reflex-test-host ++## 0.1.2.2+- add `fireQueuedEvents`+- switch over to cabal instead of stack+- update dependency to support reflex 0.9+ ## 0.1.2.1 - added `Reflex.Test.Monad.Host`
reflex-test-host.cabal view
@@ -1,13 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.31.2.+-- This file has been generated from package.yaml by hpack version 0.34.5. -- -- see: https://github.com/sol/hpack------ hash: c8330b005ad3694b1afc1a8c8db7913c2eff641ff20d06850e0714812c0eb804 name: reflex-test-host-version: 0.1.2.1+version: 0.1.2.2 synopsis: reflex host methods for testing without external events description: Please see the README on GitHub at <https://github.com/pdlla/reflex-test-host#readme> category: FRP, Reflex@@ -32,11 +30,44 @@ Reflex.Test.Host Reflex.Test.SimpleHost Reflex.Test.Monad.Host- other-modules:- Paths_reflex_test_host hs-source-dirs: src- default-extensions: ApplicativeDo BangPatterns DataKinds ConstraintKinds DeriveFoldable DeriveFunctor DeriveTraversable DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies EmptyCase ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PatternSynonyms RankNTypes ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeFamilyDependencies TypeOperators NoImplicitPrelude+ default-extensions:+ ApplicativeDo+ BangPatterns+ DataKinds+ ConstraintKinds+ DeriveFoldable+ DeriveFunctor+ DeriveTraversable+ DeriveGeneric+ DeriveLift+ DeriveTraversable+ DerivingStrategies+ EmptyCase+ ExistentialQuantification+ FlexibleContexts+ FlexibleInstances+ FunctionalDependencies+ GADTs+ GeneralizedNewtypeDeriving+ InstanceSigs+ KindSignatures+ LambdaCase+ MultiParamTypeClasses+ MultiWayIf+ NamedFieldPuns+ OverloadedStrings+ PatternSynonyms+ RankNTypes+ ScopedTypeVariables+ StandaloneDeriving+ TupleSections+ TypeApplications+ TypeFamilies+ TypeFamilyDependencies+ TypeOperators+ NoImplicitPrelude ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints build-depends: base >=4.7 && <5@@ -45,7 +76,7 @@ , mtl , primitive , ref-tf- , reflex+ , reflex >=0.7 && <0.10 , these , transformers default-language: Haskell2010@@ -59,7 +90,42 @@ Paths_reflex_test_host hs-source-dirs: test- default-extensions: ApplicativeDo BangPatterns DataKinds ConstraintKinds DeriveFoldable DeriveFunctor DeriveTraversable DeriveGeneric DeriveLift DeriveTraversable DerivingStrategies EmptyCase ExistentialQuantification FlexibleContexts FlexibleInstances FunctionalDependencies GADTs GeneralizedNewtypeDeriving InstanceSigs KindSignatures LambdaCase MultiParamTypeClasses MultiWayIf NamedFieldPuns OverloadedStrings PatternSynonyms RankNTypes ScopedTypeVariables StandaloneDeriving TupleSections TypeApplications TypeFamilies TypeFamilyDependencies TypeOperators NoImplicitPrelude+ default-extensions:+ ApplicativeDo+ BangPatterns+ DataKinds+ ConstraintKinds+ DeriveFoldable+ DeriveFunctor+ DeriveTraversable+ DeriveGeneric+ DeriveLift+ DeriveTraversable+ DerivingStrategies+ EmptyCase+ ExistentialQuantification+ FlexibleContexts+ FlexibleInstances+ FunctionalDependencies+ GADTs+ GeneralizedNewtypeDeriving+ InstanceSigs+ KindSignatures+ LambdaCase+ MultiParamTypeClasses+ MultiWayIf+ NamedFieldPuns+ OverloadedStrings+ PatternSynonyms+ RankNTypes+ ScopedTypeVariables+ StandaloneDeriving+ TupleSections+ TypeApplications+ TypeFamilies+ TypeFamilyDependencies+ TypeOperators+ NoImplicitPrelude ghc-options: -Wall -Wcompat -Wincomplete-record-updates -Wincomplete-uni-patterns -Wredundant-constraints -threaded -rtsopts -with-rtsopts=-N build-depends: HUnit@@ -71,7 +137,7 @@ , mtl , primitive , ref-tf- , reflex+ , reflex >=0.7 && <0.10 , reflex-test-host , these , transformers
src/Reflex/Test/Monad/Host.hs view
@@ -86,6 +86,9 @@ -- | fire all queued events and run a ReadPhase to produce results from the execution frames -- readphase takes place in the inner monad fireQueuedEventsAndRead :: ReadPhase (InnerMonad m) a -> m [a]+ -- | same as above with no ReadPhase+ fireQueuedEvents :: (Monad (ReadPhase (InnerMonad m))) => m [()]+ fireQueuedEvents = fireQueuedEventsAndRead (return ()) -- m is 'InnerMonad' from above data AppState t m = AppState@@ -137,6 +140,7 @@ return out fireQueuedEventsAndRead rp = do as <- get+ put $ as { _appState_queuedEvents = [] } lift $ (runFireCommand $ _appState_fire as) (_appState_queuedEvents as) rp runReflexTestT
test/Reflex/Test/Monad/HostSpec.hs view
@@ -74,17 +74,22 @@ -- get our app's output events and subscribe to them BasicNetworkTest1_Output {..} <- outputs oh <- subscribeEvent _basicNetworkTest1_Output_intEv- -- get our input trigger ref, dereference it, queue it and fire it++ -- get our input trigger ref BasicNetworkTest1_InputTriggerRefs{..} <- inputTriggerRefs - -- simpler version that uses 'queueEventTriggerRef'+ -- fire it queueEventTriggerRef _basicNetworkTest1_InputTriggerRefs_intEvTRef 123- -- fire the events and read from our output handle a <- fireQueuedEventsAndRead $ sequence =<< readEvent oh -- validate results liftIO $ a @?= [Just 123]++ -- try a different value+ queueEventTriggerRef _basicNetworkTest1_InputTriggerRefs_intEvTRef 238+ a <- fireQueuedEventsAndRead $ sequence =<< readEvent oh+ liftIO $ a @?= [Just 238] spec :: Spec