module Spec.Client (allTests) where
import Data.Function ((&))
import Data.Generics.Product (getField)
import Test.HUnit
import LaunchDarkly.Server.Client
import LaunchDarkly.Server.Config
import LaunchDarkly.Server.Context
import LaunchDarkly.Server.Store.Internal
import Data.Text (Text)
makeEmptyStore :: IO (StoreHandle IO)
makeEmptyStore = do
handle <- makeStoreIO Nothing 0
initializeStore handle mempty mempty
pure handle
testSecureModeHashIsGeneratedCorrectly :: Test
testSecureModeHashIsGeneratedCorrectly = TestCase $ do
client <- makeTestClient "secret"
assertEqual "" "aa747c502a898200f9e4fa21bac68136f886a0e27aec70ba06daf2e2a5cb5597" (secureModeHash client userContext)
assertEqual "" "a045e65c6d23bda4559ed4f2371a2508ce63016ceff58b00aa07b435e2bfedaa" (secureModeHash client orgContext)
where
userContext = makeContext "Message" "user"
orgContext = makeContext "Message" "org"
makeTestClient :: Text -> IO Client
makeTestClient sdkKey = do
client <- makeClient $ (makeConfig sdkKey) & configSetOffline True
initializeStore (getField @"store" client) mempty mempty
pure client
allTests :: Test
allTests =
TestList
[ testSecureModeHashIsGeneratedCorrectly
]