signoz/pkg/query-service/app/logparsingpipeline/pipelineBuilder_test.go

199 lines
3.4 KiB
Go
Raw Normal View History

package logparsingpipeline
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
"go.signoz.io/signoz/pkg/query-service/model"
)
var prepareProcessorTestData = []struct {
Name string
Operators []model.PipelineOperator
Output []model.PipelineOperator
}{
{
Name: "Last operator disabled",
Operators: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: true,
},
{
ID: "t2",
Name: "t2",
Enabled: false,
},
},
Output: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
},
{
Name: "Operator in middle disabled",
Operators: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: true,
},
{
ID: "t2",
Name: "t2",
Output: "t3",
Enabled: false,
},
{
ID: "t3",
Name: "t3",
Enabled: true,
},
},
Output: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t3",
Enabled: true,
},
{
ID: "t3",
Name: "t3",
Enabled: true,
},
},
},
{
Name: "Single operator disabled",
Operators: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: false,
},
},
Output: []model.PipelineOperator{},
},
{
Name: "Single operator enabled",
Operators: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
Output: []model.PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
},
{
Name: "Empty operator",
Operators: []model.PipelineOperator{},
Output: []model.PipelineOperator{},
},
{
Name: "new test",
Operators: []model.PipelineOperator{
{
ID: "move_filename",
Output: "move_function",
Enabled: true,
Name: "move_filename",
},
{
ID: "move_function",
Output: "move_line",
Enabled: false,
Name: "move_function",
},
{
ID: "move_line",
Output: "move_lwp",
Enabled: true,
Name: "move_line",
},
{
ID: "move_lwp",
Output: "move_callid",
Enabled: true,
Name: "move_lwp",
},
{
ID: "move_callid",
Enabled: true,
Name: "move_lwp",
},
},
Output: []model.PipelineOperator{
{
ID: "move_filename",
Output: "move_line",
Enabled: true,
Name: "move_filename",
},
{
ID: "move_line",
Output: "move_lwp",
Enabled: true,
Name: "move_line",
},
{
ID: "move_lwp",
Output: "move_callid",
Enabled: true,
Name: "move_lwp",
},
{
ID: "move_callid",
Enabled: true,
Name: "move_lwp",
},
},
},
{
Name: "first op disabled",
Operators: []model.PipelineOperator{
{
ID: "move_filename",
Output: "move_function",
Enabled: false,
Name: "move_filename",
},
{
ID: "move_function",
Enabled: true,
Name: "move_function",
},
},
Output: []model.PipelineOperator{
{
ID: "move_function",
Enabled: true,
Name: "move_function",
},
},
},
}
func TestPreparePipelineProcessor(t *testing.T) {
for _, test := range prepareProcessorTestData {
Convey(test.Name, t, func() {
res := getOperators(test.Operators)
So(res, ShouldResemble, test.Output)
})
}
}