diff --git a/cmd/cencus_test.go b/cmd/cencus_test.go new file mode 100644 index 000000000..d06c16d63 --- /dev/null +++ b/cmd/cencus_test.go @@ -0,0 +1,45 @@ +package cmd + +import ( + "testing" + + "github.com/cpuguy83/strongerrors" + + "go.opencensus.io/trace" +) + +func TestGetTracingExporter(t *testing.T) { + defer delete(tracingExporters, "mock") + + mockExporterFn := func(_ TracingExporterOptions) (trace.Exporter, error) { + return nil, nil + } + + _, err := GetTracingExporter("notexist", TracingExporterOptions{}) + if !strongerrors.IsNotFound(err) { + t.Fatalf("expected not found error, got: %v", err) + } + + RegisterTracingExporter("mock", mockExporterFn) + + if _, err := GetTracingExporter("mock", TracingExporterOptions{}); err != nil { + t.Fatal(err) + } +} + +func TestAvailableExporters(t *testing.T) { + defer delete(tracingExporters, "mock") + + mockExporterFn := func(_ TracingExporterOptions) (trace.Exporter, error) { + return nil, nil + } + RegisterTracingExporter("mock", mockExporterFn) + + for _, e := range AvailableTraceExporters() { + if e == "mock" { + return + } + } + + t.Fatal("could not find mock exporter in list of registered exporters") +} diff --git a/cmd/census.go b/cmd/census.go index 9f8cbd1c7..8ffdd5854 100644 --- a/cmd/census.go +++ b/cmd/census.go @@ -5,6 +5,7 @@ import ( "net/http" "os" + "github.com/cpuguy83/strongerrors" "github.com/pkg/errors" "github.com/virtual-kubelet/virtual-kubelet/log" "go.opencensus.io/trace" @@ -42,7 +43,7 @@ func RegisterTracingExporter(name string, f TracingExporterInitFunc) { func GetTracingExporter(name string, opts TracingExporterOptions) (trace.Exporter, error) { f, ok := tracingExporters[name] if !ok { - return nil, errors.Errorf("tracing exporter %q not found", name) + return nil, strongerrors.NotFound(errors.Errorf("tracing exporter %q not found", name)) } return f(opts) }