packages feed

net-spider-cli-0.1.0.0: test/NetSpider/CLI/SpiderSpec.hs

module NetSpider.CLI.SpiderSpec (main,spec) where

import Data.Monoid (mempty)
import NetSpider.Spider.Config (Config(..), LogLevel(..))
import Test.Hspec

import NetSpider.CLI.Spider (parserSpiderConfig)

import NetSpider.CLI.TestCommon (runP)

main :: IO ()
main = hspec spec

spec :: Spec
spec = describe "parserSpiderConfig" $ do
  specify "host and port" $ do
    let (Right sconf) = runP parserSpiderConfig
                        [ "--host", "foo.example.com",
                          "--port", "18822",
                          "--node-id-key", "@foo"
                        ]
    wsHost sconf `shouldBe` "foo.example.com"
    wsPort sconf `shouldBe` 18822
    nodeIdKey sconf `shouldBe` "@foo"
  specify "verbosity" $ do
    let (Right warn) = runP parserSpiderConfig []
        (Right info) = runP parserSpiderConfig ["-v"]
        (Right debug) = runP parserSpiderConfig ["-vv"]
    logThreshold warn `shouldBe` LevelWarn
    logThreshold info `shouldBe` LevelInfo
    logThreshold debug `shouldBe` LevelDebug