Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/integrations/v2/app_agent_receiver/traces_test.go
5371 views
1
package app_agent_receiver
2
3
import (
4
"context"
5
"errors"
6
"testing"
7
8
"github.com/stretchr/testify/require"
9
"go.opentelemetry.io/collector/consumer"
10
"go.opentelemetry.io/collector/pdata/ptrace"
11
)
12
13
type mockTracesConsumer struct {
14
consumed []ptrace.Traces
15
}
16
17
func (c *mockTracesConsumer) Capabilities() consumer.Capabilities {
18
return consumer.Capabilities{MutatesData: false}
19
}
20
21
func (c *mockTracesConsumer) ConsumeTraces(ctx context.Context, td ptrace.Traces) error {
22
c.consumed = append(c.consumed, td)
23
return nil
24
}
25
26
func Test_exportTraces_success(t *testing.T) {
27
ctx := context.Background()
28
tracesConsumer := &mockTracesConsumer{}
29
exporter := NewTracesExporter(func() (consumer.Traces, error) { return tracesConsumer, nil })
30
payload := loadTestPayload(t)
31
err := exporter.Export(ctx, payload)
32
require.NoError(t, err)
33
require.Len(t, tracesConsumer.consumed, 1)
34
}
35
36
func Test_exportTraces_noTracesInpayload(t *testing.T) {
37
ctx := context.Background()
38
tracesConsumer := &mockTracesConsumer{consumed: nil}
39
exporter := NewTracesExporter(func() (consumer.Traces, error) { return tracesConsumer, nil })
40
payload := loadTestPayload(t)
41
payload.Traces = nil
42
err := exporter.Export(ctx, payload)
43
require.NoError(t, err)
44
require.Len(t, tracesConsumer.consumed, 0)
45
}
46
47
func Test_exportTraces_noConsumer(t *testing.T) {
48
ctx := context.Background()
49
exporter := NewTracesExporter(func() (consumer.Traces, error) { return nil, errors.New("it dont work") })
50
payload := loadTestPayload(t)
51
err := exporter.Export(ctx, payload)
52
require.Error(t, err, "it don't work")
53
}
54
55