-
Notifications
You must be signed in to change notification settings - Fork 1
/
collector_hook_test.go
43 lines (33 loc) · 1 KB
/
collector_hook_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
package main
import (
"testing"
"time"
"github.com/qnib/qcollect/collector"
"github.com/qnib/qcollect/handler"
"github.com/qnib/qcollect/metric"
"github.com/qnib/qcollect/test_utils"
"github.com/stretchr/testify/assert"
)
func TestCollectorLogsErrors(t *testing.T) {
testLogger := test_utils.BuildLogger()
testLogger = testLogger.WithField("collector", "Test")
channel := make(chan metric.Metric)
config := make(map[string]interface{})
testCol := collector.NewTest(channel, 123, testLogger)
testCol.Configure(config)
timeout := time.Duration(5 * time.Second)
h := handler.NewTest(channel, 10, 10, timeout, testLogger)
hook := NewLogErrorHook([]handler.Handler{h})
testLogger.Logger.Hooks.Add(hook)
go testCol.Collect()
testLogger.Error("testing Error log")
select {
case m := <-h.Channel():
assert.Equal(t, "qcollect.collector_errors", m.Name)
assert.Equal(t, 1.0, m.Value)
assert.Equal(t, "Test", m.Dimensions["collector"])
return
case <-time.After(1 * time.Second):
t.Fail()
}
}