(t *testing.T)
| 470 | } |
| 471 | |
| 472 | func 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 | } |
nothing calls this directly
no test coverage detected