MCPcopy
hub / github.com/grafana/tempo / TestValidateMigratedConfig

Function TestValidateMigratedConfig

cmd/tempo-cli/cmd-migrate-config_test.go:472–520  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

470}
471
472func TestValidateMigratedConfig(t *testing.T) {
473 t.Run("unknown nested key fails validation", func(t *testing.T) {
474 m := map[string]interface{}{
475 "target": "all",
476 "server": map[string]interface{}{
477 "bogus_unknown_field": 42,
478 },
479 }
480 _, err := validateMigratedConfig(m)
481 require.Error(t, err)
482 assert.Contains(t, err.Error(), "failed validation")
483 assert.Contains(t, err.Error(), "bogus_unknown_field")
484 })
485
486 t.Run("unsupported target fails validation", func(t *testing.T) {
487 m := map[string]interface{}{
488 "target": "bogus-target",
489 }
490 _, err := validateMigratedConfig(m)
491 require.Error(t, err)
492 assert.Contains(t, err.Error(), "unsupported target")
493 assert.Contains(t, err.Error(), "bogus-target")
494 })
495
496 t.Run("env var placeholder downgrades type error to warning", func(t *testing.T) {
497 m := map[string]interface{}{
498 "target": "all",
499 "server": map[string]interface{}{
500 "http_listen_port": "${HTTP_PORT}",
501 },
502 }
503 warnings, err := validateMigratedConfig(m)
504 require.NoError(t, err)
505 require.Len(t, warnings, 1)
506 assert.Contains(t, warnings[0], "validation skipped for env var placeholders")
507 })
508
509 t.Run("valid config passes without warnings", func(t *testing.T) {
510 m := map[string]interface{}{
511 "target": "all",
512 "server": map[string]interface{}{
513 "http_listen_port": 3200,
514 },
515 }
516 warnings, err := validateMigratedConfig(m)
517 require.NoError(t, err)
518 assert.Empty(t, warnings)
519 })
520}

Callers

nothing calls this directly

Calls 4

validateMigratedConfigFunction · 0.85
ErrorMethod · 0.65
LenMethod · 0.65
RunMethod · 0.45

Tested by

no test coverage detected