{-# LANGUAGE OverloadedStrings #-} module Test.Ollama.List (tests) where import Data.Ollama.Common.Config (OllamaConfig (..), defaultOllamaConfig) import Data.Ollama.List import Data.Text qualified as T import Test.Tasty import Test.Tasty.HUnit testListBasic :: TestTree testListBasic = testCase "List models: basic call should return Models" $ do res <- list Nothing case res of Left err -> assertFailure $ "Expected success, got error: " ++ show err Right (Models modelList) -> do assertBool "Should return a list (possibly empty)" True -- Additional checks if models are present case modelList of [] -> return () -- Empty list is acceptable (model : _) -> do assertBool "Model name should not be empty" (not $ T.null $ name model) assertBool "Model digest should not be empty" (not $ T.null $ digest model) assertBool "Model size should be positive" (size model > 0) assertBool "details should be present" True -- ModelDetails is always present testListWithConfig :: TestTree testListWithConfig = testCase "List with custom config should work" $ do let config = Just $ defaultOllamaConfig {timeout = 10} res <- list config case res of Left _ -> assertFailure "Expected success, got error" Right (Models _) -> assertBool "Should return Models type" True tests :: TestTree tests = testGroup "List tests" [ testListBasic , testListWithConfig ]