content: {-# 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"
  