signoz/pkg/query-service/app/logparsingpipeline/pipelineBuilder_test.go
Raj Kamal Singh 3db8a25eb9
Add support in query service for querybuilder filterset based log pipelines (#3560)
* chore: use v3.Filterset as pipeline filters in logparsing pipelines integration tests

* chore: get logparsing integration tests passing with filterset based pipeline

* chore: get all other breaking tests passing

* chore: move models.logparsingpipeline to logparsingpipeline.model

* chore: implement Valuer and Scanner interfaces for v3.FilterSet
2023-09-20 12:39:34 +05:30

198 lines
3.2 KiB
Go

package logparsingpipeline
import (
"testing"
. "github.com/smartystreets/goconvey/convey"
)
var prepareProcessorTestData = []struct {
Name string
Operators []PipelineOperator
Output []PipelineOperator
}{
{
Name: "Last operator disabled",
Operators: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: true,
},
{
ID: "t2",
Name: "t2",
Enabled: false,
},
},
Output: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
},
{
Name: "Operator in middle disabled",
Operators: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: true,
},
{
ID: "t2",
Name: "t2",
Output: "t3",
Enabled: false,
},
{
ID: "t3",
Name: "t3",
Enabled: true,
},
},
Output: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t3",
Enabled: true,
},
{
ID: "t3",
Name: "t3",
Enabled: true,
},
},
},
{
Name: "Single operator disabled",
Operators: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Output: "t2",
Enabled: false,
},
},
Output: []PipelineOperator{},
},
{
Name: "Single operator enabled",
Operators: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
Output: []PipelineOperator{
{
ID: "t1",
Name: "t1",
Enabled: true,
},
},
},
{
Name: "Empty operator",
Operators: []PipelineOperator{},
Output: []PipelineOperator{},
},
{
Name: "new test",
Operators: []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: []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: []PipelineOperator{
{
ID: "move_filename",
Output: "move_function",
Enabled: false,
Name: "move_filename",
},
{
ID: "move_function",
Enabled: true,
Name: "move_function",
},
},
Output: []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)
})
}
}