packages feed

hs-opentelemetry-vendor-honeycomb-0.0.1.1: test/OpenTelemetry/Vendor/HoneycombSpec.hs

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