packages feed

smith-client-0.0.1: test/Test/Smith/Client/Api.hs

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE OverloadedStrings #-}
module Test.Smith.Client.Api where

import           Control.Monad.IO.Class (MonadIO (..))
import           Control.Monad.Trans.Except (runExceptT)
import           Hedgehog

import qualified Smith.Client as Smith
import           Smith.Client.Data.Environment
import           Smith.Client.Data.CertificateRequest

import qualified System.Environment as Environment


prop_end_to_end :: Property
prop_end_to_end =
  withTests 1 . property $ do
    e <- liftIO $ Environment.lookupEnv "SMITH_ENDPOINT"
    case e of
      Nothing ->
        success
      Just _endpoint -> do
        smith <- (=<<) evalEither . liftIO . runExceptT $
          Smith.configureT
        _userinfo <- (=<<) evalEither . liftIO $
          Smith.runRequest smith Smith.userinfo
        _cas <- (=<<) evalEither . liftIO $
          Smith.runRequest smith (Smith.keys $ Environment "muppets")
        _cert <- (=<<) evalEither . liftIO $
          Smith.runRequest smith (Smith.issue $
            CertificateRequest (PublicKey "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJRDZnxY1ywG2x5Mn2Ndlr7noCDwuKJPSVCy9LHNPauvPubXNVLDBV9ygkUphP+A9rtPQQ6ziGrG0NkhlGQ8beSfLq+MF283EnnhAnxnzqyvFQFh0seHo1a+MOgGcUliLbQEKE5uzt4An1epxhRyF71DmnNtASUh2TraTHcBqWCejr6INzv3dy4QeaDIUUI/C3xWqlDev+IFszTHS/2w3WPPMaJQUIeHN4MxUx+lDDIIIIagF03KM+k3AGZn+4j8WgNp916gjKXBvzX3gE11BBRNojq1N0uICDBYl5Si6uQzt46PLB0IojQ1zpQQREX0GKdd40Ar9ZuXOQlcLnBEs7 example@example.com") [Principal "root"] (Environment "muppets") (Just $ HostName "example"))
        success
    success

tests :: IO Bool
tests =
  checkParallel $$(discover)