mirror of
https://github.com/prymitive/karma
synced 2026-05-05 03:16:51 +00:00
88 lines
1.9 KiB
Go
88 lines
1.9 KiB
Go
package transform_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/cloudflare/unsee/config"
|
|
"github.com/cloudflare/unsee/models"
|
|
"github.com/cloudflare/unsee/transform"
|
|
)
|
|
|
|
type colorTest struct {
|
|
config []string
|
|
labels map[string]string
|
|
colors map[string]string
|
|
}
|
|
|
|
var colorTests = []colorTest{
|
|
colorTest{
|
|
labels: map[string]string{},
|
|
},
|
|
colorTest{
|
|
labels: map[string]string{
|
|
"node": "localhost",
|
|
},
|
|
},
|
|
colorTest{
|
|
config: []string{"node"},
|
|
labels: map[string]string{
|
|
"node": "localhost",
|
|
},
|
|
colors: map[string]string{
|
|
"node": "localhost",
|
|
},
|
|
},
|
|
colorTest{
|
|
config: []string{"node", "instance"},
|
|
labels: map[string]string{
|
|
"node": "instance",
|
|
"env": "instance",
|
|
"instance": "server1",
|
|
"job": "node_exporter",
|
|
},
|
|
colors: map[string]string{
|
|
"node": "instance",
|
|
"instance": "server1",
|
|
},
|
|
},
|
|
colorTest{
|
|
config: []string{"job", "node", "instance"},
|
|
labels: map[string]string{
|
|
"job": "node_ping",
|
|
},
|
|
colors: map[string]string{
|
|
"job": "node_ping",
|
|
},
|
|
},
|
|
}
|
|
|
|
func TestColorLabel(t *testing.T) {
|
|
for _, testCase := range colorTests {
|
|
config.Config.ColorLabelsUnique = testCase.config
|
|
colorStore := models.LabelsColorMap{}
|
|
for key, value := range testCase.labels {
|
|
transform.ColorLabel(colorStore, key, value)
|
|
}
|
|
for key, value := range testCase.colors {
|
|
if label, found := colorStore[key]; found {
|
|
if _, found := label[value]; !found {
|
|
t.Errorf("Expected value '%s' for label '%s' not found in color map", value, key)
|
|
}
|
|
} else {
|
|
t.Errorf("Expected label '%s' not found in color map", key)
|
|
}
|
|
}
|
|
for key, valueMap := range colorStore {
|
|
if _, found := testCase.colors[key]; found {
|
|
for value := range valueMap {
|
|
if value != testCase.colors[key] {
|
|
t.Errorf("Unexpected value '%s' for label '%s' found in color map", value, key)
|
|
}
|
|
}
|
|
} else {
|
|
t.Errorf("Unexpected label '%s' found in color map", key)
|
|
}
|
|
}
|
|
}
|
|
}
|