@@ -5,17 +5,19 @@ module Main
55 ( main
66 ) where
77
8- import Control.Lens ((^.) )
9- import Data.Either (isRight )
8+ import Control.Lens ((^.) )
9+ import qualified Data.ByteString as BS
10+ import Data.Either (isRight )
1011import Data.Function
11- import qualified Data.Text as Text
12+ import qualified Data.Text as Text
1213import Development.IDE.Types.Logger
1314import Ide.Plugin.Cabal
14- import qualified Ide.Plugin.Cabal.Parse as Lib
15- import qualified Language.LSP.Types.Lens as J
15+ import Ide.Plugin.Cabal.LicenseSuggest (licenseErrorSuggestion )
16+ import qualified Ide.Plugin.Cabal.Parse as Lib
17+ import qualified Language.LSP.Types.Lens as J
1618import System.FilePath
1719import Test.Hls
18- import qualified Data.ByteString as BS
20+
1921
2022cabalPlugin :: Recorder (WithPriority Log ) -> PluginDescriptor IdeState
2123cabalPlugin recorder = descriptor recorder " cabal"
@@ -51,13 +53,33 @@ initialiseRecorder False = do
5153unitTests :: TestTree
5254unitTests =
5355 testGroup " Unit Tests"
56+ [ cabalParserUnitTests,
57+ codeActionUnitTests
58+ ]
59+
60+ cabalParserUnitTests :: TestTree
61+ cabalParserUnitTests = testGroup " Parsing Cabal"
5462 [ testCase " Simple Parsing works" $ do
5563 (warnings, pm) <- Lib. parseCabalFileContents =<< BS. readFile (testDataDir </> " simple.cabal" )
5664 liftIO $ do
5765 null warnings @? " Found unexpected warnings"
5866 isRight pm @? " Failed to parse GenericPackageDescription"
5967 ]
6068
69+ codeActionUnitTests :: TestTree
70+ codeActionUnitTests = testGroup " Code Action Tests"
71+ [ testCase " Unknown format" $ do
72+ -- the message has the wrong format
73+ licenseErrorSuggestion " Unknown license identifier: 'BSD3' Do you mean BSD-3-Clause?" @?= Nothing ,
74+
75+ testCase " BSD-3-Clause" $ do
76+ licenseErrorSuggestion " Unknown SPDX license identifier: 'BSD3' Do you mean BSD-3-Clause?" @?= Just (" BSD3" , " BSD-3-Clause" ),
77+
78+ testCase " MIT" $ do
79+ -- contains no suggestion
80+ licenseErrorSuggestion " Unknown SPDX license identifier: 'MIT3'" @?= Nothing
81+ ]
82+
6183-- ------------------------------------------------------------------------
6284-- Integration Tests
6385-- ------------------------------------------------------------------------
0 commit comments