packages feed

ollama-haskell-0.3.0.0: test/Test/Ollama/Golden/Chat.hs

module Test.Ollama.Golden.Chat (tests) where

import Data.Aeson (encode)
import Data.List.NonEmpty (NonEmpty ((:|)))
import Ollama
import Test.Tasty
import Test.Tasty.Golden

tests :: TestTree
tests =
  testGroup
    "Golden JSON Serialization Tests"
    [ goldenVsString
        "ChatRequest JSON wire format matches golden fixture"
        "test/golden/chat_request.golden"
        (pure $ encode $ chatRequest "llama3.2" (userMessage "Why is the sky blue?" :| []))
    , goldenVsString
        "GenerateRequest JSON wire format matches golden fixture"
        "test/golden/generate_request.golden"
        (pure $ encode $ generateRequest "llama3.2" "Why is the sky blue?")
    , goldenVsString
        "EmbedRequest JSON wire format matches golden fixture"
        "test/golden/embed_request.golden"
        (pure $ encode $ embedRequest "nomic-embed-text" ["hello", "world"])
    ]