{--| Module : Main.hs Description : Main for Gargantext Tasty Tests Copyright : (c) CNRS, 2017-Present License : AGPL + CECILL v3 Maintainer : team@gargantext.org Stability : experimental Portability : POSIX -} module Main where import Gargantext.Prelude import qualified Test.Core.LinearAlgebra as LinearAlgebra import qualified Test.Core.Notifications as Notifications import qualified Test.Core.Orchestrator as Orchestrator import qualified Test.Core.Similarity as Similarity import qualified Test.Core.Text.Corpus.Query as CorpusQuery import qualified Test.Core.Text.Corpus.TSV as TSVParser import qualified Test.Core.Utils as Utils import qualified Test.Core.Worker as Worker import qualified Test.Graph.Clustering as Graph import qualified Test.Ngrams.Lang.Occurrences as Occurrences import qualified Test.Ngrams.NLP as NLP import qualified Test.Ngrams.Query as NgramsQuery import qualified Test.Ngrams.Terms as NgramsTerms import qualified Test.Offline.Errors as Errors import qualified Test.Offline.JSON as JSON import qualified Test.Offline.Phylo as Phylo import qualified Test.Offline.Stemming.Lancaster as Lancaster import qualified Test.Parsers.Date as PD import qualified Test.Utils.Crypto as Crypto import qualified Test.Utils.Jobs as Jobs import System.IO (hGetBuffering, hSetBuffering) import Test.Tasty import Test.Tasty.Hspec -- | https://mercurytechnologies.github.io/ghciwatch/integration/tasty.html protectStdoutBuffering :: IO a -> IO a protectStdoutBuffering action = bracket (hGetBuffering stdout) (\bufferMode -> hSetBuffering stdout bufferMode) (const action) main :: IO () main = do utilSpec <- testSpec "Utils" Utils.test clusteringSpec <- testSpec "Graph Clustering" Graph.test dateSplitSpec <- testSpec "Date split" PD.testDateSplit cryptoSpec <- testSpec "Crypto" Crypto.test nlpSpec <- testSpec "NLP" NLP.test jobsSpec <- testSpec "Jobs" Jobs.test similaritySpec <- testSpec "Similarity" Similarity.test asyncUpdatesSpec <- testSpec "Notifications" Notifications.test occurrencesSpec <- testSpec "Occurrences" Occurrences.test protectStdoutBuffering $ defaultMain $ testGroup "Gargantext" [ utilSpec , clusteringSpec , dateSplitSpec , cryptoSpec , nlpSpec , jobsSpec , occurrencesSpec , NgramsQuery.tests , occurrencesSpec , CorpusQuery.tests , TSVParser.tests , JSON.tests , Errors.tests , similaritySpec , Phylo.tests , testGroup "Stemming" [ Lancaster.tests ] , Worker.tests , asyncUpdatesSpec , Notifications.qcTests , Orchestrator.qcTests , NgramsTerms.tests , LinearAlgebra.tests ]