kubernetes-client-0.3.0.0: test/Kubernetes/Client/Auth/BasicSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module Kubernetes.Client.Auth.BasicSpec where
import Test.Hspec
import Data.Typeable
import Data.Maybe ( isJust
, isNothing
, fromJust
)
import Kubernetes.Client.Auth.Basic
import Kubernetes.Client.KubeConfig
import Kubernetes.OpenAPI
import Network.TLS ( defaultParamsClient )
emptyAuthInfo :: AuthInfo
emptyAuthInfo = AuthInfo Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
Nothing
spec :: Spec
spec = do
let testTLSParams = defaultParamsClient "" ""
testUsername = Just "testuser"
testPassword = Just "testpassword"
basicAuthInfo = emptyAuthInfo { username = testUsername, password = testPassword}
describe "Basic Authentication" $ do
it "should return Nothing if the username an d/or password is not provided" $ do
testConfig <- newConfig
isNothing (basicAuth emptyAuthInfo (testTLSParams, testConfig))
`shouldBe` True
isNothing (basicAuth emptyAuthInfo { username = testUsername} (testTLSParams, testConfig))
`shouldBe` True
isNothing (basicAuth emptyAuthInfo { password = testUsername} (testTLSParams, testConfig))
`shouldBe` True
context "when username and password are provided" $ do
it "should return a configuration provider io" $ do
testConfig <- newConfig
isJust (basicAuth basicAuthInfo (testTLSParams, testConfig)) `shouldBe` True
it "should configure basic auth" $ do
testConfig <- newConfig
(_, (KubernetesClientConfig { configAuthMethods = AnyAuthMethod (a) : as })) <-
fromJust $ basicAuth basicAuthInfo (testTLSParams, testConfig)
null as `shouldBe` True
isJust (cast a :: Maybe BasicAuth) `shouldBe` True