packages feed

arch-web-0.1.0: test/Main.hs

module Main (main) where

import Network.HTTP.Client (Manager)
import Network.HTTP.Client.TLS (newTlsManager)
import Test.HUnit
import Web.ArchLinux

main :: IO ()
main = do
  manager <- newTlsManager
  runTestTTAndExit $ tests manager

tests :: Manager -> Test
tests manager =
  TestList
    [ createTest "getPackageDetails" manager $ getPackageDetails Core X86_64 "linux",
      createTest "getPackageFiles" manager $ getPackageFiles Core X86_64 "linux",
      createTest "searchPackage" manager $ searchPackage emptySearchOptions {_nameOrDescription = Just "linux"},
      createTest "searchAur" manager $ searchAur ByNameOrDesc "haskell",
      createTest "getAurInfo" manager $ getAurInfo ["arch-hs-git"]
    ]

createTest :: HasBaseUrl k => String -> Manager -> APIClient k a -> Test
createTest tag manager action = TestLabel tag . TestCase $ do
  result <- runAPIClient manager action
  case result of
    Right _ -> pure ()
    Left err -> assertFailure $ show err