Skip to content

Commit 4d73fde

Browse files
committed
Improve FicusSpec
1 parent 0237536 commit 4d73fde

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

integration-test/Analysis/FicusSpec.hs

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
module Analysis.FicusSpec (spec) where
55

66
import App.Fossa.Ficus.Analyze (analyzeWithFicus)
7-
import App.Fossa.Ficus.Types (FicusAnalysisResults (..), FicusSnippetScanResults (..), FicusStrategy (FicusStrategySnippetScan))
7+
import App.Fossa.Ficus.Types (FicusAnalysisResults (..), FicusSnippetScanResults (..), FicusStrategy (FicusStrategySnippetScan, FicusStrategyVendetta), FicusVendoredDependencyScanResults (FicusVendoredDependencyScanResults))
88
import App.Types (ProjectRevision (..))
99
import Control.Carrier.Diagnostics (runDiagnostics)
1010
import Control.Carrier.Stack (runStack)
@@ -19,6 +19,7 @@ import Effect.ReadFS (runReadFSIO)
1919
import Fossa.API.Types (ApiKey (..), ApiOpts (..))
2020
import Path (Dir, Path, Rel, reldir, (</>))
2121
import Path.IO qualified as PIO
22+
import Srclib.Types (SourceUnit (sourceUnitName))
2223
import System.Environment (lookupEnv)
2324
import Test.Hspec
2425
import Text.URI (mkURI)
@@ -51,16 +52,28 @@ spec = do
5152
testDataExists <- PIO.doesDirExist testDataDir
5253
testDataExists `shouldBe` True
5354

54-
result <- runStack . runDiagnostics . ignoreStickyLogger . ignoreLogger . runExecIO . runReadFSIO $ analyzeWithFicus testDataDir apiOpts revision [FicusStrategySnippetScan] Nothing (Just 10) Nothing
55+
let strategies = [FicusStrategySnippetScan, FicusStrategyVendetta]
56+
57+
result <- runStack . runDiagnostics . ignoreStickyLogger . ignoreLogger . runExecIO . runReadFSIO $ analyzeWithFicus testDataDir apiOpts revision strategies Nothing (Just 10) Nothing
5558

5659
case result of
5760
Success _warnings analysisResult -> do
5861
case analysisResult of
59-
Just (FicusAnalysisResults{snippetScanResults = Just results}) -> do
60-
ficusSnippetScanResultsAnalysisId results `shouldSatisfy` (> 0)
61-
_ -> do
62-
-- No snippet scan results returned - this is acceptable for integration testing
63-
True `shouldBe` True
62+
Just results -> do
63+
case snippetScanResults results of
64+
Just snippetResults -> do
65+
ficusSnippetScanResultsAnalysisId snippetResults `shouldSatisfy` (> 0)
66+
_ -> do
67+
-- No snippet scan results returned - this is acceptable for integration testing
68+
True `shouldBe` True
69+
70+
case vendoredDependencyScanResults results of
71+
Just (FicusVendoredDependencyScanResults (Just srcUnit)) -> do
72+
sourceUnitName srcUnit `shouldBe` "ficus-vendored-dependencies"
73+
_ -> do
74+
-- No vendetta results returned - this is acceptable for integration testing
75+
True `shouldBe` True
76+
_ -> fail "Ficus analysis returned no results unexpectedly."
6477
Failure _warnings errors -> do
6578
let failureMsg = show errors
6679
case apiOpts of

0 commit comments

Comments
 (0)