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 }