fastly-0.1.0.0: test/Spec.hs
{-# LANGUAGE OverloadedStrings #-}
import Test.Hspec
import Data.Either
import qualified Network.Fastly as F
import qualified System.Environment as Env
import qualified Data.Text as T
surrogateKey = F.SurrogateKey "example/1"
testService token serviceId = do
r <- F.fastly token (\client -> F.getService client serviceId)
putStrLn $ "\ngetService: " ++ show r ++ "\n"
return r
testPurgeKey token serviceId = do
r <- F.fastly token (\client -> F.purgeKey client F.Instant serviceId surrogateKey)
putStrLn $ "\npurgeKey: " ++ show r ++ "\n"
return r
testPurgeAll token serviceId = do
r <- F.fastly token $ \client -> F.purgeAll client serviceId
putStrLn $ "\npurgeAll: " ++ show r ++ "\n"
return r
purgeKeyOk (Right (F.PurgeResult {F.purgeResultStatus = "ok", F.purgeResultId = _})) = True
purgeKeyOk _ = False
purgeAllOk (Right (F.PurgeAllResult {F.purgeAllResultStatus = "ok"})) = True
purgeAllOk _ = False
tests token serviceId = do
getServiceResult <- testService token serviceId
purgeKeyResult <- testPurgeKey token serviceId
purgeAllResult <- testPurgeAll token serviceId
hspec $ do
describe "getService" $ do
it "is okay" $ do
getServiceResult `shouldSatisfy` isRight
describe "purgeKey" $ do
it "is okay" $ do
purgeKeyResult `shouldSatisfy` purgeKeyOk
describe "purgeAll" $ do
it "is okay" $ do
purgeAllResult `shouldSatisfy` purgeAllOk
main :: IO ()
main = do
token <- Env.getEnv "FASTLY_TOKEN"
serviceId <- Env.getEnv "FASTLY_SERVICE_ID"
tests (T.pack token) (F.ServiceId (T.pack serviceId))