diff --git a/test/Spec.hs b/test/Spec.hs index dfd0d6b..2721680 100644 --- a/test/Spec.hs +++ b/test/Spec.hs @@ -3,16 +3,15 @@ import Test.Hspec -import Data.String (IsString (..)) -import Data.Text (Text) -import Text.Parsec.Pos - -import Control.Monad (zipWithM_) import Identifier (Identifier) import Lexer import Parser import Types +import Data.String (IsString (..)) +import Data.Text (Text) +import Text.Parsec.Pos + shouldParseTo :: Text -> DocMarkup mod Identifier -> Expectation shouldParseTo input ast = parseText input `shouldBe` ast @@ -38,11 +37,6 @@ shouldLexTo :: String -> [(Int, Int, Token)] -> Expectation shouldLexTo input expected = case lexer input of Right tokens -> do - length tokens `shouldBe` length expected - zipWithM_ checkToken tokens expected + let actual = map (\(pos, tok) -> (sourceLine pos, sourceColumn pos, tok)) tokens + actual `shouldBe` expected Left err -> expectationFailure $ "Parse error: " <> show err - where - checkToken (pos, tok) (line, col, expectedTok) = do - tok `shouldBe` expectedTok - sourceLine pos `shouldBe` line - sourceColumn pos `shouldBe` col