packages feed

follow-0.1.0.0: test/Follow/Digesters/SimpleTextSpec.hs

{-# LANGUAGE OverloadedStrings #-}

module Follow.Digesters.SimpleTextSpec where

import qualified Data.Text                   as T (isInfixOf)
import           Data.Time                   (LocalTime)
import           Follow.Digesters.SimpleText
import           Follow.Types                (Directory (..), Entry (..),
                                              Subject (..))
import           Test.Hspec

spec :: Spec
spec =
  describe ".digest" $ do
    let isInfixOf' = flip T.isInfixOf
    let subject = Subject "Subject Title" "Subject Description" ["tag"]
    let entries =
          [ Entry
              (Just "http://a_url.com")
              (Just "a_guid")
              (Just "Entry Title")
              (Just "Entry Description")
              (Just "Entry Author")
              (Just (read "2009-09-06 16:20:00" :: LocalTime))
          ]
    let directory = Directory subject entries
    let output = digest directory
    it "adds subject title" $ do
      "Subject Title" `shouldSatisfy` (isInfixOf' output)
    it "adds subject description" $ do
      "Subject Description" `shouldSatisfy` (isInfixOf' output)
    it "adds subject tags" $ do "tag" `shouldSatisfy` (isInfixOf' output)
    it "adds each entry URL" $ do
      "http://a_url.com" `shouldSatisfy` (isInfixOf' output)
    it "adds each entry title" $ do
      "Entry Title" `shouldSatisfy` (isInfixOf' output)
    it "adds each entry description" $ do
      "Entry Description" `shouldSatisfy` (isInfixOf' output)
    it "adds each entry author" $ do
      "Entry Author" `shouldSatisfy` (isInfixOf' output)
    it "adds each entry publish date" $ do
      "2009-09-06 16:20:00" `shouldSatisfy` (isInfixOf' output)