Files
grafana/pkg/tsdb/jaeger/jaeger_test.go
T
Ivana Huckova 59f3ca09ab Jaeger: Run traceID query through backend with feature toggle enabled (#103472)
* Jaeger: Run traceID query through backend with feature toggle enabled

* Reorganize

* Update comments and test

* Fix snapshot test

* Only pass time params if enabled in cofig

* Rename applyVariables to applyTemplateVariables

* Rename transformResponse to transformTraceResponse

* Update comment
2025-04-09 14:13:46 +02:00

90 lines
2.0 KiB
Go

package jaeger
import (
"context"
"testing"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/backend/httpclient"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestDataSourceInstanceSettings_TraceIdTimeEnabled(t *testing.T) {
tests := []struct {
name string
jsonData string
expectedEnabled bool
expectError bool
}{
{
name: "traceIdTimeParams enabled",
jsonData: `{
"traceIdTimeParams": {
"enabled": true
}
}`,
expectedEnabled: true,
expectError: false,
},
{
name: "traceIdTimeParams disabled",
jsonData: `{
"traceIdTimeParams": {
"enabled": false
}
}`,
expectedEnabled: false,
expectError: false,
},
{
name: "traceIdTimeParams not specified",
jsonData: `{}`,
expectedEnabled: false,
expectError: false,
},
{
name: "traceIdTimeParams without enabled",
jsonData: `{"traceIdTimeParams":{}}`,
expectedEnabled: false,
expectError: false,
},
{
name: "Invalid JSON",
jsonData: `{invalid json`,
expectedEnabled: false,
expectError: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
// Create instance settings
settings := backend.DataSourceInstanceSettings{
JSONData: []byte(tt.jsonData),
URL: "http://localhost:16686",
}
// Create instance factory
factory := newInstanceSettings(httpclient.NewProvider())
instance, err := factory(context.Background(), settings)
if tt.expectError {
assert.Error(t, err)
return
}
require.NoError(t, err)
require.NotNil(t, instance)
// Get the datasource info
dsInfo, ok := instance.(*datasourceInfo)
require.True(t, ok)
require.NotNil(t, dsInfo)
// Verify the client's traceIdTimeEnabled parameter
assert.Equal(t, tt.expectedEnabled, dsInfo.JaegerClient.traceIdTimeEnabled)
})
}
}