Files
zeekayandHanzo Dev c16ed9fe26 Go 1.27.1, and the code it can say more simply
Modules declare go 1.27.1 and the build images follow. go fix applied the
modernizers; omitzero is not applied, since it changes what the JSON says.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-17 02:34:35 -07:00

70 lines
2.2 KiB
Go

// Brought in as is from logstransform processor in opentelemetry-collector-contrib
package o11ylogspipelineprocessor
import (
"context"
"testing"
o11ylogspipelinestanzaoperator "github.com/hanzoai/otel-collector/processor/o11ylogspipelineprocessor/stanza/operator"
"github.com/stretchr/testify/assert"
"go.opentelemetry.io/collector/component/componenttest"
"go.opentelemetry.io/collector/consumer/consumertest"
"go.opentelemetry.io/collector/processor/processortest"
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/entry"
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/helper"
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/stanza/operator/parser/regex"
"github.com/hanzoai/otel-collector/processor/o11ylogspipelineprocessor/internal/metadata"
)
func TestCreateDefaultConfig(t *testing.T) {
factory := NewFactory()
cfg := factory.CreateDefaultConfig()
assert.NoError(t, componenttest.CheckConfigStruct(cfg))
assert.NotNil(t, cfg)
}
func TestCreateProcessor(t *testing.T) {
factory := NewFactory()
cfg := &Config{
Operators: []o11ylogspipelinestanzaoperator.Config{
{
Builder: func() *regex.Config {
cfg := regex.NewConfig()
cfg.Regex = "^(?P<time>\\d{4}-\\d{2}-\\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$"
sevField := entry.NewAttributeField("sev")
sevCfg := helper.NewSeverityConfig()
sevCfg.ParseFrom = &sevField
cfg.SeverityConfig = &sevCfg
timeField := entry.NewAttributeField("time")
timeCfg := helper.NewTimeParser()
timeCfg.Layout = "%Y-%m-%d"
timeCfg.ParseFrom = &timeField
cfg.TimeParser = &timeCfg
return cfg
}(),
},
},
}
tp, err := factory.CreateLogs(context.Background(), processortest.NewNopSettings(metadata.Type), cfg, consumertest.NewNop())
assert.NoError(t, err)
assert.NotNil(t, tp)
}
func TestInvalidOperators(t *testing.T) {
factory := NewFactory()
cfg := &Config{
Operators: []o11ylogspipelinestanzaoperator.Config{
{
// invalid due to missing regex
Builder: regex.NewConfig(),
},
},
}
_, err := factory.CreateLogs(context.Background(), processortest.NewNopSettings(metadata.Type), cfg, nil)
assert.Error(t, err)
}