on 47ebe3f help sign in
reflex-dom-core/ChangeLog.md−4
since splitsnapshots
unifiedsplit
@@ -1,9 +1,5 @@
1# Revision history for reflex-dom-core
1# Revision history for reflex-dom-core
2
2
3−## 0.6.2.1
4−
5−* Fix hlint complaints with newer GHC.
6−
7## 0.6.2.0
3## 0.6.2.0
8
4
9* ([#400](https://github.com/reflex-frp/reflex-dom/pull/400/files)) Set value of input elements in static renderer
5* ([#400](https://github.com/reflex-frp/reflex-dom/pull/400/files)) Set value of input elements in static renderer
reflex-dom-core/reflex-dom-core.cabal+2−2
@@ -1,6 +1,6 @@
1cabal-version: 1.24
1cabal-version: 1.24
2Name: reflex-dom-core
2Name: reflex-dom-core
3−Version: 0.6.2.1
3+Version: 0.6.2.0
4Synopsis: Functional Reactive Web Apps with Reflex
4Synopsis: Functional Reactive Web Apps with Reflex
5Description:
5Description:
6 Web applications without callbacks or side-effects.
6 Web applications without callbacks or side-effects.
@@ -178,7 +178,7 @@ library
178test-suite hlint
178test-suite hlint
179 build-depends:
179 build-depends:
180 base,
180 base,
181− hlint >= 2.0 && < 4.0
181+ hlint >= 3.0 && < 4.0
182 hs-source-dirs: test
182 hs-source-dirs: test
183 main-is: hlint.hs
183 main-is: hlint.hs
184 type: exitcode-stdio-1.0
184 type: exitcode-stdio-1.0
reflex-dom-core/test/hydration.hs+26−25
@@ -154,13 +154,13 @@ main = do
154 withDebugging <- isNothing <$> lookupEnv "NO_DEBUG"
154 withDebugging <- isNothing <$> lookupEnv "NO_DEBUG"
155 let wdConfig = WD.defaultConfig { WD.wdPort = fromIntegral $ _selenium_portNumber selenium }
155 let wdConfig = WD.defaultConfig { WD.wdPort = fromIntegral $ _selenium_portNumber selenium }
156 chromeCaps' = WD.getCaps $ chromeConfig browserPath chromeFlags
156 chromeCaps' = WD.getCaps $ chromeConfig browserPath chromeFlags
157− hspec (tests withDebugging wdConfig [(chromeCaps', "chrome")] selenium) `finally` _selenium_stopServer selenium
157+ hspec (tests withDebugging wdConfig [chromeCaps'] selenium) `finally` _selenium_stopServer selenium
158
158
159−tests :: Bool -> WD.WDConfig -> [(Capabilities, String)] -> Selenium -> Spec
159+tests :: Bool -> WD.WDConfig -> [Capabilities] -> Selenium -> Spec
160tests withDebugging wdConfig caps _selenium = do
160tests withDebugging wdConfig caps _selenium = do
161 let putStrLnDebug :: MonadIO m => Text -> m ()
161 let putStrLnDebug :: MonadIO m => Text -> m ()
162 putStrLnDebug m = when withDebugging $ liftIO $ putStrLn $ T.unpack m
162 putStrLnDebug m = when withDebugging $ liftIO $ putStrLn $ T.unpack m
163− session' t = sessionWith wdConfig t . using caps
163+ session' = sessionWith wdConfig "" . using (map (,"") caps)
164 runWD m = runWDOptions (WdOptions False) $ do
164 runWD m = runWDOptions (WdOptions False) $ do
165 putStrLnDebug "before"
165 putStrLnDebug "before"
166 r <- m
166 r <- m
@@ -172,7 +172,7 @@ tests withDebugging wdConfig caps _selenium = do
172 testWidget = testWidgetDebug True withDebugging
172 testWidget = testWidgetDebug True withDebugging
173 testWidget' :: WD a -> (a -> WD b) -> (forall m js. TestWidget js (SpiderTimeline Global) m => m ()) -> WD b
173 testWidget' :: WD a -> (a -> WD b) -> (forall m js. TestWidget js (SpiderTimeline Global) m => m ()) -> WD b
174 testWidget' = testWidgetDebug' True withDebugging
174 testWidget' = testWidgetDebug' True withDebugging
175− session' "text" $ do
175+ describe "text" $ session' $ do
176 it "works" $ runWD $ do
176 it "works" $ runWD $ do
177 testWidgetStatic (checkBodyText "hello world") $ do
177 testWidgetStatic (checkBodyText "hello world") $ do
178 text "hello world"
178 text "hello world"
@@ -233,7 +233,7 @@ tests withDebugging wdConfig caps _selenium = do
233 click <- button ""
233 click <- button ""
234 void $ textNode $ TextNodeConfig "initial" $ Just $ "after" <$ click
234 void $ textNode $ TextNodeConfig "initial" $ Just $ "after" <$ click
235
235
236− session' "element" $ do
236+ describe "element" $ session' $ do
237 it "works with domEvent Click" $ runWD $ do
237 it "works with domEvent Click" $ runWD $ do
238 clickedRef <- liftIO $ newRef False
238 clickedRef <- liftIO $ newRef False
239 testWidget' (findElemWithRetry $ WD.ByTag "div") WD.click $ do
239 testWidget' (findElemWithRetry $ WD.ByTag "div") WD.click $ do
@@ -297,8 +297,8 @@ tests withDebugging wdConfig caps _selenium = do
297 let click = domEvent Click e
297 let click = domEvent Click e
298 return ()
298 return ()
299
299
300− session' "inputElement" $ do
300+ describe "inputElement" $ do
301− describe "static renderer" $ do
301+ describe "static renderer" $ session' $ do
302 it "sets value attribute" $ runWD $ do
302 it "sets value attribute" $ runWD $ do
303 let checkStatic = do
303 let checkStatic = do
304 e <- findElemWithRetry $ WD.ByTag "input"
304 e <- findElemWithRetry $ WD.ByTag "input"
@@ -355,7 +355,7 @@ tests withDebugging wdConfig caps _selenium = do
355 & inputElementConfig_initialChecked .~ False
355 & inputElementConfig_initialChecked .~ False
356 & inputElementConfig_setChecked .~ (True <$ pb)
356 & inputElementConfig_setChecked .~ (True <$ pb)
357 pure ()
357 pure ()
358− describe "hydration" $ do
358+ describe "hydration" $ session' $ do
359 it "doesn't wipe user input when switching over" $ runWD $ do
359 it "doesn't wipe user input when switching over" $ runWD $ do
360 inputRef <- newRef ("hello " :: Text)
360 inputRef <- newRef ("hello " :: Text)
361 testWidget'
361 testWidget'
@@ -593,7 +593,8 @@ tests withDebugging wdConfig caps _selenium = do
593 el "p" $ dynText $ _inputElement_value e
593 el "p" $ dynText $ _inputElement_value e
594 performEvent_ $ consRef valRef <$> updated (_inputElement_value e)
594 performEvent_ $ consRef valRef <$> updated (_inputElement_value e)
595 performEvent_ $ consRef inputRef <$> _inputElement_input e
595 performEvent_ $ consRef inputRef <$> _inputElement_input e
596+
596− describe "hydration/immediate" $ do
597+ describe "hydration/immediate" $ session' $ do
597 it "captures user input after switchover" $ runWD $ do
598 it "captures user input after switchover" $ runWD $ do
598 inputRef :: IORef Text <- newRef ""
599 inputRef :: IORef Text <- newRef ""
599 let checkValue = do
600 let checkValue = do
@@ -673,8 +674,8 @@ tests withDebugging wdConfig caps _selenium = do
673 names <- liftJSM $ traverse File.getName fs
674 names <- liftJSM $ traverse File.getName fs
674 liftIO $ writeRef filesRef names
675 liftIO $ writeRef filesRef names
675
676
676− session' "textAreaElement" $ do
677+ describe "textAreaElement" $ do
677− describe "static renderer" $ do
678+ describe "static renderer" $ session' $ do
678 it "sets value attribute" $ runWD $ do
679 it "sets value attribute" $ runWD $ do
679 let checkStatic = do
680 let checkStatic = do
680 e <- findElemWithRetry $ WD.ByTag "textarea"
681 e <- findElemWithRetry $ WD.ByTag "textarea"
@@ -697,7 +698,7 @@ tests withDebugging wdConfig caps _selenium = do
697 & textAreaElementConfig_initialValue .~ "test"
698 & textAreaElementConfig_initialValue .~ "test"
698 & textAreaElementConfig_setValue .~ ("test-updated" <$ pb)
699 & textAreaElementConfig_setValue .~ ("test-updated" <$ pb)
699 pure ()
700 pure ()
700− describe "hydration" $ do
701+ describe "hydration" $ session' $ do
701 it "doesn't wipe user input when switching over" $ runWD $ do
702 it "doesn't wipe user input when switching over" $ runWD $ do
702 inputRef <- newRef ("" :: Text)
703 inputRef <- newRef ("" :: Text)
703 testWidget'
704 testWidget'
@@ -846,7 +847,7 @@ tests withDebugging wdConfig caps _selenium = do
846 e <- textAreaElement $ def & textAreaElementConfig_setValue .~ ("pb" <$ pb)
847 e <- textAreaElement $ def & textAreaElementConfig_setValue .~ ("pb" <$ pb)
847 el "p" $ dynText $ _textAreaElement_value e
848 el "p" $ dynText $ _textAreaElement_value e
848
849
849− describe "hydration/immediate" $ do
850+ describe "hydration/immediate" $ session' $ do
850 it "captures user input after switchover" $ runWD $ do
851 it "captures user input after switchover" $ runWD $ do
851 inputRef :: IORef Text <- newRef ""
852 inputRef :: IORef Text <- newRef ""
852 let checkValue = do
853 let checkValue = do
@@ -888,13 +889,13 @@ tests withDebugging wdConfig caps _selenium = do
888 performEvent_ $ liftIO . writeRef valueByUIRef <$> _textAreaElement_input e
889 performEvent_ $ liftIO . writeRef valueByUIRef <$> _textAreaElement_input e
889 performEvent_ $ liftIO . writeRef valueRef <$> updated (value e)
890 performEvent_ $ liftIO . writeRef valueRef <$> updated (value e)
890
891
891− session' "selectElement" $ do
892+ describe "selectElement" $ do
892 let options :: DomBuilder t m => m ()
893 let options :: DomBuilder t m => m ()
893 options = do
894 options = do
894 elAttr "option" ("value" =: "one" <> "id" =: "one") $ text "one"
895 elAttr "option" ("value" =: "one" <> "id" =: "one") $ text "one"
895 elAttr "option" ("value" =: "two" <> "id" =: "two") $ text "two"
896 elAttr "option" ("value" =: "two" <> "id" =: "two") $ text "two"
896 elAttr "option" ("value" =: "three" <> "id" =: "three") $ text "three"
897 elAttr "option" ("value" =: "three" <> "id" =: "three") $ text "three"
897− describe "hydration" $ do
898+ describe "hydration" $ session' $ do
898 it "sets initial value correctly" $ runWD $ do
899 it "sets initial value correctly" $ runWD $ do
899 inputRef <- newRef ("" :: Text)
900 inputRef <- newRef ("" :: Text)
900 let setup = do
901 let setup = do
@@ -968,7 +969,7 @@ tests withDebugging wdConfig caps _selenium = do
968 performEvent_ $ liftIO . writeRef valueByUIRef <$> _selectElement_change e
969 performEvent_ $ liftIO . writeRef valueByUIRef <$> _selectElement_change e
969 performEvent_ $ liftIO . writeRef valueRef <$> updated (_selectElement_value e)
970 performEvent_ $ liftIO . writeRef valueRef <$> updated (_selectElement_value e)
970
971
971− describe "hydration/immediate" $ do
972+ describe "hydration/immediate" $ session' $ do
972 it "captures user input after switchover" $ runWD $ do
973 it "captures user input after switchover" $ runWD $ do
973 inputRef :: IORef Text <- newRef ""
974 inputRef :: IORef Text <- newRef ""
974 let checkValue = do
975 let checkValue = do
@@ -1014,7 +1015,7 @@ tests withDebugging wdConfig caps _selenium = do
1014 performEvent_ $ liftIO . writeRef valueByUIRef <$> _selectElement_change e
1015 performEvent_ $ liftIO . writeRef valueByUIRef <$> _selectElement_change e
1015 performEvent_ $ liftIO . writeRef valueRef <$> updated (_selectElement_value e)
1016 performEvent_ $ liftIO . writeRef valueRef <$> updated (_selectElement_value e)
1016
1017
1017− session' "prerender" $ do
1018+ describe "prerender" $ session' $ do
1018 it "works in simple case" $ runWD $ do
1019 it "works in simple case" $ runWD $ do
1019 testWidget (checkBodyText "One") (checkBodyText "Two") $ do
1020 testWidget (checkBodyText "One") (checkBodyText "Two") $ do
1020 prerender_ (text "One") (text "Two")
1021 prerender_ (text "One") (text "Two")
@@ -1083,7 +1084,7 @@ tests withDebugging wdConfig caps _selenium = do
1083 prerender_ (pure ()) (liftIO $ trigger "Client")
1084 prerender_ (pure ()) (liftIO $ trigger "Client")
1084 textNode $ TextNodeConfig "Initial" $ Just e
1085 textNode $ TextNodeConfig "Initial" $ Just e
1085
1086
1086− session' "namespaces" $ do
1087+ describe "namespaces" $ session' $ do
1087 it "dyn can be nested in namespaced widget" $ runWD $ do
1088 it "dyn can be nested in namespaced widget" $ runWD $ do
1088 testWidget (pure ()) (checkTextInTag "svg" "one") $ do
1089 testWidget (pure ()) (checkTextInTag "svg" "one") $ do
1089 let svgRootCfg = def
1090 let svgRootCfg = def
@@ -1092,7 +1093,7 @@ tests withDebugging wdConfig caps _selenium = do
1092 void $ element "svg" svgRootCfg $ do
1093 void $ element "svg" svgRootCfg $ do
1093 dyn_ $ text "one" <$ pure ()
1094 dyn_ $ text "one" <$ pure ()
1094
1095
1095− session' "runWithReplace" $ do
1096+ describe "runWithReplace" $ session' $ do
1096 it "works" $ runWD $ do
1097 it "works" $ runWD $ do
1097 replaceChan :: Chan Text <- liftIO newChan
1098 replaceChan :: Chan Text <- liftIO newChan
1098 let setup = findElemWithRetry $ WD.ByTag "div"
1099 let setup = findElemWithRetry $ WD.ByTag "div"
@@ -1290,7 +1291,7 @@ tests withDebugging wdConfig caps _selenium = do
1290 _ <- runWithReplace (text "inner1") $ el "p" (text "inner2") <$ replace
1291 _ <- runWithReplace (text "inner1") $ el "p" (text "inner2") <$ replace
1291 text "|after"
1292 text "|after"
1292
1293
1293− session' "traverseDMapWithKeyWithAdjust" $ do
1294+ describe "traverseDMapWithKeyWithAdjust" $ session' $ do
1294 let widget :: DomBuilder t m => DKey a -> Identity a -> m (Identity a)
1295 let widget :: DomBuilder t m => DKey a -> Identity a -> m (Identity a)
1295 widget k (Identity v) = elAttr "li" ("id" =: textKey k) $ do
1296 widget k (Identity v) = elAttr "li" ("id" =: textKey k) $ do
1296 elClass "span" "key" $ text $ textKey k
1297 elClass "span" "key" $ text $ textKey k
@@ -1393,7 +1394,7 @@ tests withDebugging wdConfig caps _selenium = do
1393 (dmap, _evt) <- traverseDMapWithKeyWithAdjust widget keyMap $ leftmost [postBuildPatch <$ pb, replace]
1394 (dmap, _evt) <- traverseDMapWithKeyWithAdjust widget keyMap $ leftmost [postBuildPatch <$ pb, replace]
1394 liftIO $ dmap `H.shouldBe` keyMap
1395 liftIO $ dmap `H.shouldBe` keyMap
1395
1396
1396− session' "traverseIntMapWithKeyWithAdjust" $ do
1397+ describe "traverseIntMapWithKeyWithAdjust" $ session' $ do
1397 let textKeyInt k = "key" <> T.pack (show k)
1398 let textKeyInt k = "key" <> T.pack (show k)
1398 intMap = IntMap.fromList
1399 intMap = IntMap.fromList
1399 [ (1, "one")
1400 [ (1, "one")
@@ -1500,7 +1501,7 @@ tests withDebugging wdConfig caps _selenium = do
1500 (dmap, _evt) <- traverseIntMapWithKeyWithAdjust widget intMap $ leftmost [postBuildPatch <$ pb, replace]
1501 (dmap, _evt) <- traverseIntMapWithKeyWithAdjust widget intMap $ leftmost [postBuildPatch <$ pb, replace]
1501 liftIO $ dmap `H.shouldBe` intMap
1502 liftIO $ dmap `H.shouldBe` intMap
1502
1503
1503− session' "traverseDMapWithKeyWithAdjustWithMove" $ do
1504+ describe "traverseDMapWithKeyWithAdjustWithMove" $ session' $ do
1504 let widget :: DomBuilder t m => Key2 a -> Identity a -> m (Identity a)
1505 let widget :: DomBuilder t m => Key2 a -> Identity a -> m (Identity a)
1505 widget k (Identity v) = elAttr "li" ("id" =: textKey2 k) $ do
1506 widget k (Identity v) = elAttr "li" ("id" =: textKey2 k) $ do
1506 elClass "span" "key" $ text $ textKey2 k
1507 elClass "span" "key" $ text $ textKey2 k
@@ -1580,8 +1581,8 @@ tests withDebugging wdConfig caps _selenium = do
1580 (dmap, _evt) <- traverseDMapWithKeyWithAdjustWithMove widget initMap =<< triggerEventWithChan chan
1581 (dmap, _evt) <- traverseDMapWithKeyWithAdjustWithMove widget initMap =<< triggerEventWithChan chan
1581 liftIO $ assertEqual "DMap" initMap dmap
1582 liftIO $ assertEqual "DMap" initMap dmap
1582
1583
1583− session' "hydrating invalid HTML" $ do
1584+ describe "hydrating invalid HTML" $ session' $ do
1584− xit "can hydrate list in paragraph" $ runWD $ do
1585+ it "can hydrate list in paragraph" $ runWD $ do
1585 let preSwitchover = do
1586 let preSwitchover = do
1586 checkBodyText "before\ninner\nafter"
1587 checkBodyText "before\ninner\nafter"
1587 -- Two <p> tags should be present
1588 -- Two <p> tags should be present
@@ -1610,7 +1611,7 @@ tests withDebugging wdConfig caps _selenium = do
1610 -- TODO: This test presupposes the exact set of labels that "dropdown" places in the "value" fields to distinguish options.
1611 -- TODO: This test presupposes the exact set of labels that "dropdown" places in the "value" fields to distinguish options.
1611 -- This dependence on internal implementation details is undesirable in a test case, but seems fairly tricky to avoid.
1612 -- This dependence on internal implementation details is undesirable in a test case, but seems fairly tricky to avoid.
1612 -- It seems expedient for the time being to expect this test case to be updated, should those implementation details ever change.
1613 -- It seems expedient for the time being to expect this test case to be updated, should those implementation details ever change.
1613− session' "dropdown" $ do
1614+ describe "dropdown" $ session' $ do
1614 let doTest expectedOpts (initialValue :: Text) = do
1615 let doTest expectedOpts (initialValue :: Text) = do
1615 let doCheck = do
1616 let doCheck = do
1616 es <- findElemsWithRetry $ WD.ByTag "option"
1617 es <- findElemsWithRetry $ WD.ByTag "option"