Files
kubesphere/pkg/kapis/devops/v1alpha2/devops_test.go
Roland.Ma c37a11c5f9 move api to staging
Signed-off-by: Roland.Ma <rolandma@yunify.com>
2021-04-29 08:20:05 +00:00

63 lines
1.9 KiB
Go

package v1alpha2
import (
"strings"
"testing"
"kubesphere.io/api/devops/v1alpha3"
"kubesphere.io/kubesphere/pkg/models/devops"
)
func TestParseNameFilterFromQuery(t *testing.T) {
table := []struct {
query string
pipeline *v1alpha3.Pipeline
expectFilter devops.PipelineFilter
expectNamespace string
message string
}{{
query: "type:pipeline;organization:jenkins;pipeline:serverjkq4c/*",
pipeline: &v1alpha3.Pipeline{},
expectFilter: nil,
expectNamespace: "serverjkq4c",
message: "query all pipelines with filter *",
}, {
query: "type:pipeline;organization:jenkins;pipeline:cccc/*abc*",
pipeline: &v1alpha3.Pipeline{},
expectFilter: func(pipeline *v1alpha3.Pipeline) bool {
return strings.Contains(pipeline.Name, "abc")
},
expectNamespace: "cccc",
message: "query all pipelines with filter abc",
}, {
query: "type:pipeline;organization:jenkins;pipeline:pai-serverjkq4c/*",
pipeline: &v1alpha3.Pipeline{},
expectFilter: nil,
expectNamespace: "pai-serverjkq4c",
message: "query all pipelines with filter *",
}, {
query: "type:pipeline;organization:jenkins;pipeline:defdef",
pipeline: &v1alpha3.Pipeline{},
expectFilter: nil,
expectNamespace: "defdef",
message: "query all pipelines with filter *",
}}
for i, item := range table {
filter, ns := parseNameFilterFromQuery(item.query)
if item.expectFilter == nil {
if filter != nil {
t.Fatalf("invalid filter, index: %d, message: %s", i, item.message)
}
} else {
if filter == nil || filter(item.pipeline) != item.expectFilter(item.pipeline) {
t.Fatalf("invalid filter, index: %d, message: %s", i, item.message)
}
}
if ns != item.expectNamespace {
t.Fatalf("invalid namespace, index: %d, message: %s", i, item.message)
}
}
}