hs-opentelemetry-api-0.2.0.0: test/OpenTelemetry/ResourceSpec.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE PatternSynonyms #-}
module OpenTelemetry.ResourceSpec where
import qualified Data.Text as T
import qualified OpenTelemetry.Resource as R
import qualified Test.Hspec as Hspec
spec :: Hspec.Spec
spec = Hspec.describe "Resource" $ do
Hspec.describe "mergeResources" $ do
Hspec.it "Is left-biased when attribute keys conflict" $ do
let right = mkExampleResource "Old Right" 3
left = mkExampleResource "New Left" 7
R.materializeResources (R.mergeResources left right) `Hspec.shouldBe` R.materializeResources left
Hspec.describe "Semigroup.<>" $ do
Hspec.it "Is left-biased when attribute keys conflict" $ do
let right = mkExampleResource "Old Right" 3
left = mkExampleResource "New Left" 7
R.materializeResources (left <> right) `Hspec.shouldBe` R.materializeResources left
mkExampleResource :: T.Text -> Int -> R.Resource 'Nothing
mkExampleResource name count =
R.mkResource [ExampleName R..= name, ExampleCount R..= count]
pattern ExampleName :: T.Text
pattern ExampleName = "example.name"
pattern ExampleCount :: T.Text
pattern ExampleCount = "example.count"