{-# LANGUAGE DataKinds #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE TemplateHaskell #-}
module Main (main) where
import Control.Monad
import Web.Telegram.API.Bot
import Test.Hspec
import Data.Text (Text)
import qualified Data.Text as T
import Servant.Client
import Servant.API
import Network.HTTP.Types.Status
import System.Environment
import qualified MainSpec
import qualified InlineSpec
main :: IO ()
main = do
args <- getArgs
withArgs [] $ hspec (runSpec args)
-- Don't run integration tests if no token and chat id provided
runSpec :: [String] -> SpecWith ()
runSpec [] = do
describe "NoTests" $ do
it "Does not run integration tests if no token, chat id and boot name provided" $ do
pending
runSpec [tkn,cId,bNm] = do
let token = Token (T.pack tkn)
let chatId = T.pack cId
let botName = T.pack bNm
runSpec' token chatId botName
runSpec' :: Token -> Text -> Text -> SpecWith ()
runSpec' token chatId botName = do
describe "Main" $ MainSpec.spec token chatId botName
--describe "Inline" $ InlineSpec.spec token chatId botName