{-# LANGUAGE OverloadedStrings #-}
module OpenTelemetry.Vendor.HoneycombSpec where
import Data.Time.Calendar.OrdinalDate
import Data.Time.Clock
import OpenTelemetry.Trace.Id (bytesToTraceId)
import OpenTelemetry.Vendor.Honeycomb
import Test.Hspec
import Prelude
spec :: Spec
spec = describe "Honeycomb vendor integration" $ do
let team_ = HoneycombTeam "teamName"
Right fakeTraceId = bytesToTraceId "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
fakeUTCTime = UTCTime (fromOrdinalDate 2022 10) 0
it "generates valid trace links for classic" $ do
makeDirectTraceLink (HoneycombTarget team_ (Classic "datasetName")) fakeUTCTime fakeTraceId
`shouldBe` "https://ui.honeycomb.io/teamName/datasets/datasetName/trace?trace_id=000102030405060708090a0b0c0d0e0f&trace_start_ts=1641769200&trace_end_ts=1641776400"
it "generates valid trace links for current" $ do
makeDirectTraceLink (HoneycombTarget team_ (Current (EnvironmentName "environmentName") "datasetName")) fakeUTCTime fakeTraceId
`shouldBe` "https://ui.honeycomb.io/teamName/environments/environmentName/datasets/datasetName/trace?trace_id=000102030405060708090a0b0c0d0e0f&trace_start_ts=1641769200&trace_end_ts=1641776400"