bloodhound-0.23.0.0: tests/Test/ScriptSpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -Wno-incomplete-uni-patterns #-}
module Test.ScriptSpec (spec) where
import qualified Data.Aeson.KeyMap as X
import qualified Data.Map as M
import TestsUtils.Common
import TestsUtils.Import
spec :: Spec
spec =
describe "Script" $
it "returns a transformed document based on the script field" $
withTestEnv $ do
_ <- insertData
let query = MatchAllQuery Nothing
sfv =
toJSON $
Script
(Just (ScriptLanguage "painless"))
(ScriptInline "doc['age'].value * 2")
Nothing
sf =
ScriptFields $
X.fromList [("test1", sfv)]
search' = mkSearch (Just query) Nothing
search = search' {scriptFields = Just sf}
sr <- performBHRequest $ searchByIndex @Value testIndex search
let Just results =
hitFields (head (hits (searchHits sr)))
liftIO $
results `shouldBe` HitFields (M.fromList [("test1", [Number 20000.0])])