Skip to content

Commit

Permalink
add more test cases for prometheus module
Browse files Browse the repository at this point in the history
  • Loading branch information
haoel committed Jun 30, 2022
1 parent 8e6e6b1 commit 6df2594
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions metric/prometheus_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ package metric
import (
"testing"

"bou.ke/monkey"
"github.com/stretchr/testify/assert"
)

Expand Down Expand Up @@ -73,3 +74,71 @@ func TestNewMetrics(t *testing.T) {
assert.NotNil(t, GetName("namespace_subsystem_gauge_metric"))
assert.NotNil(t, Gauge("namespace_subsystem_gauge_metric"))
}

func TestName(t *testing.T) {

assert.False(t, ValidMetricName(""))
assert.False(t, ValidMetricName(" "))
assert.False(t, ValidMetricName("\n"))
assert.False(t, ValidMetricName("5name"))
assert.False(t, ValidMetricName("name%"))
assert.False(t, ValidMetricName("hello-world"))
assert.False(t, ValidMetricName("hello-world@"))

assert.True(t, ValidMetricName("name5"))
assert.True(t, ValidMetricName(":name"))
assert.True(t, ValidMetricName("hello_world:name"))
assert.True(t, ValidMetricName("_hello_world:name"))
assert.True(t, ValidMetricName(":_hello_world:name"))
assert.True(t, ValidMetricName("namespace_name_metric"))

assert.False(t, ValidLabelName(""))
assert.False(t, ValidLabelName(" "))
assert.False(t, ValidLabelName("\n"))
assert.False(t, ValidLabelName("5name"))
assert.False(t, ValidLabelName("name%"))
assert.False(t, ValidLabelName("hello-world"))
assert.False(t, ValidLabelName("hello-world@"))

assert.True(t, ValidLabelName("_name5"))
assert.True(t, ValidLabelName("name_"))
assert.True(t, ValidLabelName("name5"))
assert.True(t, ValidLabelName("hello_world"))
assert.True(t, ValidLabelName("_hello_world_"))
assert.True(t, ValidLabelName("_hello_world_1_"))
}

func TestDuplicateName(t *testing.T) {
counter1 := NewCounter("namespace", "subsystem", "counter", "metric",
"help", []string{})
counter2 := NewCounter("namespace", "subsystem", "counter", "metric",
"help", []string{})
assert.Equal(t, counter1, counter2)

gauge1 := NewGauge("namespace", "subsystem", "gauge", "metric",
"help", []string{})
gauge2 := NewGauge("namespace", "subsystem", "gauge", "metric",
"help", []string{})
assert.Equal(t, gauge1, gauge2)
}

func TestInvalidName(t *testing.T) {

//label errors
counter := NewCounter("namespace", "subsystem", "counter", "metric",
"help", []string{"label-1", "label:2"})
assert.Nil(t, counter)

gauge := NewGauge("namespace", "subsystem", "gauge", "metric",
"help", []string{"label-1", "label:2"})
assert.Nil(t, gauge)

monkey.Patch(ValidMetricName, func(name string) bool {
return false
})
counter = NewCounter("namespace", "subsystem", "counter", "metric",
"help", []string{})
assert.Nil(t, counter)

monkey.UnpatchAll()
}

0 comments on commit 6df2594

Please sign in to comment.