Skip to content

Testing

Testing

Unit Tests

Use the noop collector — Props.Collector is always non-nil:

p := &props.Props{
    // Collector is nil — telemetry calls are safe but do nothing
}

Or create a disabled collector for explicit testing:

c := telemetry.NewCollector(telemetry.Config{}, telemetry.NewNoopBackend(),
    "test", "1.0.0", nil, logger.NewNoop(), "", props.DeliveryAtLeastOnce)

Verifying Events

Use a spy backend to capture events in tests:

type spyBackend struct {
    events []telemetry.Event
    mu     sync.Mutex
}

func (s *spyBackend) Send(_ context.Context, events []telemetry.Event) error {
    s.mu.Lock()
    defer s.mu.Unlock()
    s.events = append(s.events, events...)
    return nil
}

func (s *spyBackend) Close() error { return nil }