(t *testing.T)
| 300 | } |
| 301 | |
| 302 | func TestConfig_ValidateRingMode(t *testing.T) { |
| 303 | cfg := &Config{} |
| 304 | cfg.RegisterFlagsAndApplyDefaults("", flag.NewFlagSet("", flag.PanicOnError)) |
| 305 | cfg.Storage.Path = t.TempDir() |
| 306 | |
| 307 | t.Run("valid partition ring mode", func(t *testing.T) { |
| 308 | cfg := *cfg |
| 309 | cfg.RingMode = RingModePartition |
| 310 | require.NoError(t, cfg.Validate()) |
| 311 | }) |
| 312 | |
| 313 | t.Run("valid generator ring mode without kafka", func(t *testing.T) { |
| 314 | cfg := *cfg |
| 315 | cfg.RingMode = RingModeGenerator |
| 316 | require.NoError(t, cfg.Validate()) |
| 317 | }) |
| 318 | |
| 319 | t.Run("valid generator ring mode with configured consumer group", func(t *testing.T) { |
| 320 | cfg := *cfg |
| 321 | cfg.ConsumeFromKafka = true |
| 322 | cfg.RingMode = RingModeGenerator |
| 323 | cfg.Ingest.Kafka.Topic = "tempo" |
| 324 | cfg.Ingest.Kafka.ConsumerGroup = "generator-a" |
| 325 | require.NoError(t, cfg.Validate()) |
| 326 | }) |
| 327 | |
| 328 | t.Run("generator ring mode requires consumer group when consuming from kafka", func(t *testing.T) { |
| 329 | cfg := *cfg |
| 330 | cfg.ConsumeFromKafka = true |
| 331 | cfg.RingMode = RingModeGenerator |
| 332 | cfg.Ingest.Kafka.Topic = "tempo" |
| 333 | require.EqualError(t, cfg.Validate(), "ingest.kafka.consumer_group must be configured when metrics-generator ring mode is generator") |
| 334 | }) |
| 335 | |
| 336 | t.Run("invalid ring mode", func(t *testing.T) { |
| 337 | cfg := *cfg |
| 338 | cfg.RingMode = RingMode("invalid") |
| 339 | require.EqualError(t, cfg.Validate(), "invalid ring mode: invalid, valid values are partition and generator") |
| 340 | }) |
| 341 | } |
| 342 | |
| 343 | func boolPtr(b bool) *bool { |
| 344 | return &b |
nothing calls this directly
no test coverage detected