content: {-# LANGUAGE OverloadedLists #-}
  {-# LANGUAGE OverloadedStrings #-}
  module Text.Seonbi.Html.WrapperSpec (spec) where
  
  import Test.Hspec
  
  import Text.Seonbi.Html.Entity
  import Text.Seonbi.Html.Tag
  import Text.Seonbi.Html.Wrapper
  
  spec :: Spec
  spec =
      specify "wrap" $
          wrap [Div, Article] BlockQuote " class=\"q\""
              [ HtmlStartTag
                  { tagStack = [Div, Article]
                  , tag = P
                  , rawAttributes = ""
                  }
              , HtmlText { tagStack = [Div, Article, P], rawText = "foo" }
              , HtmlStartTag
                  { tagStack = [Div, Article, P]
                  , tag = Em
                  , rawAttributes = ""
                  }
              , HtmlCdata { tagStack = [Div, Article, P, Em], text = "bar" }
              , HtmlEndTag { tagStack = [Div, Article, P], tag = Em }
              , HtmlComment { tagStack = [Div, Article, P], comment = " baz " }
              , HtmlEndTag { tagStack = [Div, Article], tag = P }
              ] `shouldBe`
              [ HtmlStartTag
                  { tagStack = [Div, Article]
                  , tag = BlockQuote
                  , rawAttributes = " class=\"q\""
                  }
              , HtmlStartTag
                  { tagStack = [Div, Article, BlockQuote]
                  , tag = P
                  , rawAttributes = ""
                  }
              , HtmlText
                  { tagStack = [Div, Article, BlockQuote, P]
                  , rawText = "foo"
                  }
              , HtmlStartTag
                  { tagStack = [Div, Article, BlockQuote, P]
                  , tag = Em
                  , rawAttributes = ""
                  }
              , HtmlCdata
                  { tagStack = [Div, Article, BlockQuote, P, Em]
                  , text = "bar"
                  }
              , HtmlEndTag { tagStack = [Div, Article, BlockQuote, P], tag = Em }
              , HtmlComment
                  { tagStack = [Div, Article, BlockQuote, P]
                  , comment = " baz "
                  }
              , HtmlEndTag { tagStack = [Div, Article, BlockQuote], tag = P }
              , HtmlEndTag { tagStack = [Div, Article], tag = BlockQuote }
              ]
  