git.iko.soy/typeable/bloodhound
on a6fe919 help sign in
23 lines 1.0 kB history raw
1{-# LANGUAGE OverloadedStrings #-}
3module Test.Suggest where
5import Test.Common
6import Test.Import
8spec :: Spec
9spec =
10 describe "Suggest" $
11 it "returns a search suggestion using the phrase suggester" $ withTestEnv $ do
12 _ <- insertData
13 let query = QueryMatchNoneQuery
14 phraseSuggester = mkPhraseSuggester (FieldName "message")
15 namedSuggester = Suggest "Use haskel" "suggest_name" (SuggestTypePhraseSuggester phraseSuggester)
16 search' = mkSearch (Just query) Nothing
17 search = search' { suggestBody = Just namedSuggester }
18 expectedText = Just "use haskell"
19 resp <- searchByIndex testIndex search
20 parsed <- parseEsResponse resp :: BH IO (Either EsError (SearchResult Tweet))
21 case parsed of
22 Left e -> liftIO $ expectationFailure ("Expected an search suggestion but got " <> show e)
23 Right sr -> liftIO $ (suggestOptionsText . head . suggestResponseOptions . head . nsrResponses <$> suggest sr) `shouldBe` expectedText