@@ -29,7 +29,6 @@ import Data.Constraint.Extras
29import Data.Constraint.Extras.TH
29import Data.Constraint.Extras.TH
30import Data.Dependent.Map (DMap)
30import Data.Dependent.Map (DMap)
31import Data.Dependent.Sum (DSum(..), (==>), EqTag(..), ShowTag(..))
31import Data.Dependent.Sum (DSum(..), (==>), EqTag(..), ShowTag(..))
32−--import Data.Foldable (traverse_)
33import Data.Functor.Identity
32import Data.Functor.Identity
34import Data.Functor.Misc
33import Data.Functor.Misc
35import Data.GADT.Compare.TH
34import Data.GADT.Compare.TH
@@ -411,7 +410,6 @@ tests withDebugging wdConfig caps _selenium = do
411 e <- inputElement def
410 e <- inputElement def
412 performEvent_ $ liftIO . writeRef focusRef <$> updated (_inputElement_hasFocus e)
411 performEvent_ $ liftIO . writeRef focusRef <$> updated (_inputElement_hasFocus e)
413 it "sets value appropriately" $ runWD $ do
412 it "sets value appropriately" $ runWD $ do
414− putStrLnDebug "sets value appropriately"
415 valueByUIRef :: IORef Text <- newRef ""
413 valueByUIRef :: IORef Text <- newRef ""
416 valueRef :: IORef Text <- newRef ""
414 valueRef :: IORef Text <- newRef ""
417 setValueChan :: Chan Text <- liftIO newChan
415 setValueChan :: Chan Text <- liftIO newChan
@@ -432,74 +430,43 @@ tests withDebugging wdConfig caps _selenium = do
432 performEvent_ $ liftIO . writeRef valueByUIRef <$> _inputElement_input e
430 performEvent_ $ liftIO . writeRef valueByUIRef <$> _inputElement_input e
433 performEvent_ $ liftIO . writeRef valueRef <$> updated (value e)
431 performEvent_ $ liftIO . writeRef valueRef <$> updated (value e)
434 it "sets checked appropriately" $ runWD $ do
432 it "sets checked appropriately" $ runWD $ do
435− putStrLnDebug "sets checked appropriately"
436 checkedByUIRef <- newRef False
433 checkedByUIRef <- newRef False
437 checkedRef <- newRef False
434 checkedRef <- newRef False
438 setCheckedChan <- liftIO newChan
435 setCheckedChan <- liftIO newChan
439 let checkValue = do
436 let checkValue = do
441 readRef checkedByUIRef `shouldBeWithRetryM` False
437 readRef checkedByUIRef `shouldBeWithRetryM` False
443 readRef checkedRef `shouldBeWithRetryM` False
438 readRef checkedRef `shouldBeWithRetryM` False
445 e <- findElemWithRetry $ WD.ByTag "input"
439 e <- findElemWithRetry $ WD.ByTag "input"
447 WD.moveToCenter e
440 WD.moveToCenter e
449 WD.click e
441 WD.click e
451 readRef checkedByUIRef `shouldBeWithRetryM` True
442 readRef checkedByUIRef `shouldBeWithRetryM` True
453 readRef checkedRef `shouldBeWithRetryM` True
443 readRef checkedRef `shouldBeWithRetryM` True
455 liftIO $ writeChan setCheckedChan False
444 liftIO $ writeChan setCheckedChan False
457 readRef checkedByUIRef `shouldBeWithRetryM` True
445 readRef checkedByUIRef `shouldBeWithRetryM` True
459 readRef checkedRef `shouldBeWithRetryM` False
446 readRef checkedRef `shouldBeWithRetryM` False
461 testWidget (pure ()) checkValue $ do
447 testWidget (pure ()) checkValue $ do
463 setChecked <- triggerEventWithChan setCheckedChan
448 setChecked <- triggerEventWithChan setCheckedChan
465 prerender_ (pure ()) $ do
449 prerender_ (pure ()) $ do
467 e <- inputElement $ def
450 e <- inputElement $ def
468 & initialAttributes .~ "type" =: "checkbox"
451 & initialAttributes .~ "type" =: "checkbox"
469 & inputElementConfig_setChecked .~ setChecked
452 & inputElementConfig_setChecked .~ setChecked
471 performEvent_ $ liftIO . writeRef checkedByUIRef <$> _inputElement_checkedChange e
453 performEvent_ $ liftIO . writeRef checkedByUIRef <$> _inputElement_checkedChange e
473 performEvent_ $ liftIO . writeRef checkedRef <$> updated (_inputElement_checked e)
454 performEvent_ $ liftIO . writeRef checkedRef <$> updated (_inputElement_checked e)
475 it "captures file uploads" $ runWD $ do
455 it "captures file uploads" $ runWD $ do
476 filesRef :: IORef [Text] <- newRef []
456 filesRef :: IORef [Text] <- newRef []
477 let uploadFile = do
457 let uploadFile = do
479 e <- findElemWithRetry $ WD.ByTag "input"
458 e <- findElemWithRetry $ WD.ByTag "input"
481 path <- liftIO $ writeSystemTempFile "testFile" "file contents"
459 path <- liftIO $ writeSystemTempFile "testFile" "file contents"
483 WD.sendKeys (T.pack path) e
460 WD.sendKeys (T.pack path) e
485 WD.click =<< (findElemWithRetry $ WD.ByTag "button")
461 WD.click =<< (findElemWithRetry $ WD.ByTag "button")
487 liftIO $ removeFile path
462 liftIO $ removeFile path
489 readRef filesRef `shouldBeWithRetryM` [T.pack $ FilePath.takeFileName path]
463 readRef filesRef `shouldBeWithRetryM` [T.pack $ FilePath.takeFileName path]
491 testWidget (pure ()) uploadFile $ prerender_ (pure ()) $ do
464 testWidget (pure ()) uploadFile $ prerender_ (pure ()) $ do
493 e <- inputElement $ def & initialAttributes .~ "type" =: "file"
465 e <- inputElement $ def & initialAttributes .~ "type" =: "file"
495 click <- button "save"
466 click <- button "save"
497 performEvent_ $ ffor (tag (current (_inputElement_files e)) click) $ \fs -> do
467 performEvent_ $ ffor (tag (current (_inputElement_files e)) click) $ \fs -> do
499 names <- liftJSM $ traverse File.getName fs
468 names <- liftJSM $ traverse File.getName fs
501 liftIO $ writeRef filesRef names
469 liftIO $ writeRef filesRef names
504 describe "textAreaElement" $ do
471 describe "textAreaElement" $ do
505 describe "hydration" $ session' $ do
472 describe "hydration" $ session' $ do