79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
| package consul
 | |
| 
 | |
| import (
 | |
| 	"testing"
 | |
| 
 | |
| 	"github.com/hashicorp/consul/api"
 | |
| 	"github.com/influxdata/telegraf/testutil"
 | |
| )
 | |
| 
 | |
| var sampleChecks = []*api.HealthCheck{
 | |
| 	{
 | |
| 		Node:        "localhost",
 | |
| 		CheckID:     "foo.health123",
 | |
| 		Name:        "foo.health",
 | |
| 		Status:      "passing",
 | |
| 		Notes:       "lorem ipsum",
 | |
| 		Output:      "OK",
 | |
| 		ServiceID:   "foo.123",
 | |
| 		ServiceName: "foo",
 | |
| 		ServiceTags: []string{"bar", "env:sandbox", "tagkey:value:stillvalue"},
 | |
| 	},
 | |
| }
 | |
| 
 | |
| func TestGatherHealthCheck(t *testing.T) {
 | |
| 	expectedFields := map[string]interface{}{
 | |
| 		"check_name": "foo.health",
 | |
| 		"status":     "passing",
 | |
| 		"passing":    1,
 | |
| 		"critical":   0,
 | |
| 		"warning":    0,
 | |
| 		"service_id": "foo.123",
 | |
| 	}
 | |
| 
 | |
| 	expectedTags := map[string]string{
 | |
| 		"node":                    "localhost",
 | |
| 		"service_name":            "foo",
 | |
| 		"check_id":                "foo.health123",
 | |
| 		"bar":                     "bar",
 | |
| 		"env:sandbox":             "env:sandbox",
 | |
| 		"tagkey:value:stillvalue": "tagkey:value:stillvalue",
 | |
| 	}
 | |
| 
 | |
| 	var acc testutil.Accumulator
 | |
| 
 | |
| 	consul := &Consul{}
 | |
| 	consul.GatherHealthCheck(&acc, sampleChecks)
 | |
| 
 | |
| 	acc.AssertContainsTaggedFields(t, "consul_health_checks", expectedFields, expectedTags)
 | |
| }
 | |
| 
 | |
| func TestGatherHealthCheckWithDelimitedTags(t *testing.T) {
 | |
| 	expectedFields := map[string]interface{}{
 | |
| 		"check_name": "foo.health",
 | |
| 		"status":     "passing",
 | |
| 		"passing":    1,
 | |
| 		"critical":   0,
 | |
| 		"warning":    0,
 | |
| 		"service_id": "foo.123",
 | |
| 	}
 | |
| 
 | |
| 	expectedTags := map[string]string{
 | |
| 		"node":         "localhost",
 | |
| 		"service_name": "foo",
 | |
| 		"check_id":     "foo.health123",
 | |
| 		"bar":          "bar",
 | |
| 		"env":          "sandbox",
 | |
| 		"tagkey":       "value:stillvalue",
 | |
| 	}
 | |
| 
 | |
| 	var acc testutil.Accumulator
 | |
| 
 | |
| 	consul := &Consul{
 | |
| 		TagDelimiter: ":",
 | |
| 	}
 | |
| 	consul.GatherHealthCheck(&acc, sampleChecks)
 | |
| 
 | |
| 	acc.AssertContainsTaggedFields(t, "consul_health_checks", expectedFields, expectedTags)
 | |
| }
 |