natskell-0.0.0.1: test/Unit/OkSpec.hs
{-# LANGUAGE OverloadedStrings #-}
module OkSpec (spec) where
import Control.Monad
import qualified Data.ByteString as BS
import Parser.API
( ParseStep (Emit)
, ParsedMessage (ParsedOk)
, parse
)
import Parser.Attoparsec (parserApi)
import Test.Hspec
import Text.Printf
import Types.Ok
spec :: Spec
spec = do
cases
explicitCases :: [(BS.ByteString, Ok)]
explicitCases = [("+OK\r\n", Ok)]
cases = parallel $ do
describe "generic parser" $ do
forM_ explicitCases $ \(input, want) ->
it (printf "correctly parses explicit case %s" (show input)) $ do
let output = parse parserApi input
output `shouldBe` Emit (ParsedOk want) ""