packages feed

lsp-types-2.0.0.0: test/TypesSpec.hs

{-# LANGUAGE OverloadedStrings #-}
module TypesSpec where

import qualified Language.LSP.Protocol.Types as J
import           Test.Hspec

spec :: Spec
spec = do
  describe "MarkupContent" $ do
    it "appends two plainstrings" $ do
      J.mkPlainText "string1\n" <> J.mkPlainText "string2\n"
        `shouldBe` J.mkPlainText "string1\nstring2\n"
    it "appends a marked up and a plain string" $ do
      J.mkMarkdownCodeBlock "haskell" "foo :: Int" <> J.mkPlainText "string2\nstring3\n"
        `shouldBe` J.MarkupContent J.MarkupKind_Markdown "\n```haskell\nfoo :: Int\n```\nstring2  \nstring3  \n"
    it "appends a plain string and a marked up string" $ do
       J.mkPlainText "string2\n" <> J.mkMarkdownCodeBlock "haskell" "foo :: Int"
        `shouldBe` J.MarkupContent J.MarkupKind_Markdown "string2  \n\n```haskell\nfoo :: Int\n```\n"