packages feed

lsp-types-2.0.0.0: test/CapabilitiesSpec.hs

{-# LANGUAGE DuplicateRecordFields #-}

{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
module CapabilitiesSpec where

import           Language.LSP.Protocol.Types
import           Language.LSP.Protocol.Capabilities
import           Test.Hspec

spec :: Spec
spec = describe "capabilities" $ do
  it "gives 3.10 capabilities" $
    let ClientCapabilities{_textDocument=Just tdcs} = capsForVersion (LSPVersion 3 10)
        Just (DocumentSymbolClientCapabilities{_hierarchicalDocumentSymbolSupport=mHierarchical}) = _documentSymbol tdcs
      in mHierarchical `shouldBe` Just True
  it "gives pre 3.10 capabilities" $
      let ClientCapabilities{_textDocument=Just tdcs} = capsForVersion (LSPVersion 3 9)
          Just (DocumentSymbolClientCapabilities{_hierarchicalDocumentSymbolSupport=mHierarchical}) = _documentSymbol tdcs
        in mHierarchical `shouldBe` Nothing