packages feed

sandwich-webdriver-0.4.0.0: src/Test/Sandwich/WebDriver/Internal/StartWebDriver.hs

{-# LANGUAGE CPP #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}

module Test.Sandwich.WebDriver.Internal.StartWebDriver (
  stopWebDriver
  ) where

import Control.Monad.Catch (MonadMask)
import Control.Monad.IO.Unlift
import Control.Monad.Logger
import GHC.Stack
import Test.Sandwich.WebDriver.Internal.Types
import qualified Test.WebDriver as W

#ifndef mingw32_HOST_OS
import Test.Sandwich.WebDriver.Internal.StartWebDriver.Xvfb
#endif


type Constraints m = (
  HasCallStack, MonadLoggerIO m, MonadUnliftIO m, MonadMask m, MonadFail m
  )

stopWebDriver :: (Constraints m, W.WebDriverBase m) => TestWebDriverContext -> m ()
stopWebDriver (TestWebDriverContext {wdContext}) = do
  W.teardownWebDriverContext wdContext

  -- whenJust maybeXvfbSession $ \(XvfbSession {..}) -> do
  --   whenJust xvfbFluxboxProcess $ \p' -> do
  --     gracefullyStopProcess p' gracePeriod

  --   gracefullyStopProcess xvfbProcess gracePeriod