packages feed

lightning-haskell-0.1.0.2: test/Web/LightningSpec.hs

{-# LANGUAGE OverloadedStrings #-}

module Web.LightningSpec where

import           Test.Hspec

import           Data.Maybe

import           Web.Lightning
import           Web.Lightning.Session

main :: IO ()
main = hspec spec

spec :: Spec
spec = do
  describe "Lightning options API" $ do
    it "allows setting Lightning's API base URL" $ do
      let opts = setBaseURL "http://127.0.0.1:3000" defaultLightningOptions
       in optHostUrl opts `shouldBe` "http://127.0.0.1:3000"
    it "allows setting a session name" $ do
      let opts = setSessionName "test" defaultLightningOptions
          sess = fromJust $ optSession opts
       in fromJust (snName sess) `shouldBe` "test"
    it "allows setting a session id" $ do
      let opts = setSessionId "abc-xyz" defaultLightningOptions
          sess = fromJust $ optSession opts
       in snId sess `shouldBe` "abc-xyz"
    it "allows setting HTTP Basic Auth credentials" $ do
      let opts = setBasicAuth ("user", "secret") defaultLightningOptions
          (BasicAuth (_, p)) = optLoginMethod opts
       in p `shouldBe` "secret"