packages feed

webdriver-w3c-0.0.3: test/Web/Api/WebDriver/Monad/Test/Session/UnknownError.hs

{-# LANGUAGE BangPatterns, OverloadedStrings #-}
module Web.Api.WebDriver.Monad.Test.Session.UnknownError (
    unknownErrorExit
  ) where

import System.IO

import Web.Api.WebDriver
import Test.Tasty.WebDriver

import qualified Test.Tasty as T
import qualified Test.Tasty.ExpectedFailure as TE


unknownError
  :: (Monad eff)
  => WDError
  -> WebDriverT eff ()
unknownError e = case e of
  ResponseError UnknownError _ _ _ _ -> assertSuccess "yay!"
  _ -> assertFailure "Expecting 'unknown error'"


unknownErrorExit
  :: (Monad eff) => (String -> WebDriverT eff () -> T.TestTree)
  -> FilePath
  -> T.TestTree
unknownErrorExit buildTestCase path = T.testGroup "Unknown Error"
  [ buildTestCase "navigateTo" (_test_navigateTo_unknown_error)
  ]



_test_navigateTo_unknown_error
  :: (Monad eff) => WebDriverT eff ()
_test_navigateTo_unknown_error =
  let
    session = do
      navigateTo "https://fake.example"
      _ <- throwError $ UnexpectedResult IsSuccess "Expecting 'unknown error'"
      return ()

  in catchError session unknownError