headroom-0.4.0.0: test/Headroom/FileSupport/ShellSpec.hs
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module Headroom.FileSupport.ShellSpec
( spec
)
where
import Headroom.FileSupport.Shell
import Headroom.FileSupport.Types ( FileSupport(..)
, SyntaxAnalysis(..)
)
import RIO
import Test.Hspec
spec :: Spec
spec = do
describe "fsSyntaxAnalysis" $ do
it "correctly detects comment starts/ends" $ do
let samples =
[ ("non comment line" , (False, False))
, ("# single line comment" , (True, True))
, ("not # single line comment", (False, False))
]
all checkSyntaxAnalysis samples `shouldBe` True
where
checkSyntaxAnalysis (l, (s, e)) =
let SyntaxAnalysis {..} = fsSyntaxAnalysis fileSupport
in saIsCommentStart l == s && saIsCommentEnd l == e