Guest User

Untitled

a guest
Jul 23rd, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. module App.Page.RegisterSpec (spec) where
  2.  
  3. import Prelude
  4.  
  5. import App.DSL.Auth (AuthF(..), AuthInfo(..), Role(..), AUTH, _auth)
  6. import App.Page.Register (Query(..), eval)
  7. import App.Types (unsafeName)
  8. import Control.Monad.Free (foldFree)
  9. import Control.Monad.Writer (WriterT, runWriterT, tell)
  10. import Data.Tuple (Tuple(..))
  11. import Effect.Aff (Aff)
  12. import Halogen.Query.HalogenM (HalogenF(..), HalogenM(..))
  13. import Run (Run, case_, on)
  14. import Run as Run
  15. import Test.Spec (Spec, describe, it)
  16. import Test.Spec.Assertions (shouldContain)
  17. import Unsafe.Coerce (unsafeCoerce)
  18.  
  19. spec :: Spec Unit
  20. spec = describe "Register page" do
  21. it "sends register request" $ do
  22. Tuple _ log <- runWriterT $ Run.interpret (case_ # on _auth interpretAuth) $ runHalogenM do
  23. eval (SetName "test name" unit)
  24. eval (SetEmail "test@gmail.com" unit)
  25. eval (SetPassword "test password" unit)
  26. eval (SetPasswordCheck "test password" unit)
  27. eval (MakeRequest unit)
  28. pure unit
  29. log `shouldContain` "register"
  30.  
  31. interpretAuth :: AuthF ~> WriterT (Array String) Aff
  32. interpretAuth = case _ of
  33. Register info next -> do
  34. tell [ "register" ]
  35. pure next
  36. Login creds fnext -> do
  37. tell [ "login" ]
  38. pure $ fnext $ AuthInfo { name: unsafeName "Yura", role: User }
  39.  
  40. type M = Run (auth :: AUTH)
  41.  
  42. runHalogenM
  43. :: ∀ s f g p o a
  44. . HalogenM s f g p o M a
  45. -> Run (auth :: AUTH) a
  46. runHalogenM (HalogenM hm) = foldFree nt hm where
  47. nt :: HalogenF s f g p o M ~> M
  48. nt = case _ of
  49. State f -> unsafeCoerce unit
  50. Subscribe _ next -> pure next
  51. Lift ma -> ma
  52. Halt msg -> unsafeCoerce unit
  53. GetSlots f -> unsafeCoerce unit
  54. CheckSlot p f -> unsafeCoerce unit
  55. ChildQuery p c -> unsafeCoerce unit
  56. Raise o a -> pure a
  57. Par ap -> unsafeCoerce unit
  58. Fork f -> unsafeCoerce unit
  59. GetRef label f -> unsafeCoerce unit
Add Comment
Please, Sign In to add comment