github.com/blend/go-sdk@v1.20240719.1/statsutil/new_multi_collector_test.go (about)

     1  /*
     2  
     3  Copyright (c) 2024 - Present. Blend Labs, Inc. All rights reserved
     4  Use of this source code is governed by a MIT license that can be found in the LICENSE file.
     5  
     6  */
     7  
     8  package statsutil
     9  
    10  import (
    11  	"testing"
    12  
    13  	"github.com/blend/go-sdk/assert"
    14  	"github.com/blend/go-sdk/configmeta"
    15  	"github.com/blend/go-sdk/datadog"
    16  	"github.com/blend/go-sdk/logger"
    17  	"github.com/blend/go-sdk/stats"
    18  )
    19  
    20  func Test_NewMultiCollector(t *testing.T) {
    21  	its := assert.New(t)
    22  
    23  	log := logger.None()
    24  
    25  	collector, err := NewMultiCollector(log,
    26  		OptMetaConfig(configmeta.Meta{
    27  			ServiceName: "test-service",
    28  			ServiceEnv:  "test-service-env",
    29  			Version:     "test-service-version",
    30  			ClusterName: "test-cluster.centrio.com",
    31  		}),
    32  		OptDatadogConfig(datadog.Config{}),
    33  		OptPrinter(true),
    34  	)
    35  	its.Nil(err)
    36  
    37  	typed, ok := collector.(stats.MultiCollector)
    38  
    39  	its.True(ok)
    40  	its.Len(typed, 2)
    41  	its.True(typed.HasTagKey(stats.TagService))
    42  	its.True(typed.HasTagKey(stats.TagEnv))
    43  	its.True(typed.HasTagKey(stats.TagVersion))
    44  	its.True(typed.HasTagKey(stats.TagClusterName))
    45  
    46  	defaultTags := typed.DefaultTags()
    47  	its.Any(defaultTags, func(v interface{}) bool {
    48  		return v.(string) == stats.Tag(stats.TagService, "test-service")
    49  	})
    50  	its.Any(defaultTags, func(v interface{}) bool {
    51  		return v.(string) == stats.Tag(stats.TagEnv, "test-service-env")
    52  	})
    53  	its.Any(defaultTags, func(v interface{}) bool {
    54  		return v.(string) == stats.Tag(stats.TagVersion, "test-service-version")
    55  	})
    56  	its.Any(defaultTags, func(v interface{}) bool {
    57  		return v.(string) == stats.Tag(stats.TagClusterName, "test-cluster.centrio.com")
    58  	})
    59  }