wai-saml2-0.3.0.0: tests/Parser.hs
import Network.Wai.SAML2.Response
import Network.Wai.SAML2.XML
import System.FilePath
import Test.Tasty
import Test.Tasty.Golden
import Text.Show.Pretty
import Text.XML.Cursor
import qualified Data.ByteString.Lazy.Char8 as BC
import qualified Text.XML as XML
run :: FilePath -> IO BC.ByteString
run src = do
doc <- XML.readFile XML.def src
resp <- parseXML (fromDocument doc)
pure $ BC.pack $ ppShow (resp :: Response)
main :: IO ()
main = defaultMain $ testGroup "Parse SAML2 response"
[ mkGolden $ prefix </> "keycloak.xml"
, mkGolden $ prefix </> "okta.xml"
]
where
prefix = "tests/data"
mkGolden path = goldenVsStringDiff
(takeBaseName path)
(\ref new -> ["diff", "-u", ref, new])
(path <.> "expected")
(run path)