packages feed

json-feed-2.0.0.0: source/test-suite/Main.hs

module Main
  ( main
  ) where

import System.FilePath ((<.>), (</>))

import qualified Control.Monad as Monad
import qualified Data.ByteString.Lazy as ByteString
import qualified Data.Either as Either
import qualified JsonFeed
import qualified Test.Hspec as Hspec


main :: IO ()
main = Hspec.hspec . Hspec.parallel . Hspec.describe "JsonFeed" $ do
  Monad.forM_ feeds $ \feed -> do
    Hspec.it ("parses the " <> feed <> " feed") $ do
      let file = "feeds" </> feed <.> "json"
      contents <- ByteString.readFile file
      JsonFeed.parseFeed contents `Hspec.shouldSatisfy` Either.isRight

feeds :: [String]
feeds =
  [ "allenpike.com"
  , "daringfireball.net"
  , "flyingmeat.com"
  , "hypercritical.co"
  , "inessential.com"
  , "jsonfeed.org"
  , "manton.org"
  , "maybepizza.com"
  , "shapeof.com"
  , "therecord.co"
  , "timetable.manton.org"
  ]