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

Function TestConfig_ValidateRingMode

modules/generator/config_test.go:302–341  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

300}
301
302func 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
343func boolPtr(b bool) *bool {
344 return &b

Callers

nothing calls this directly

Calls 4

ValidateMethod · 0.95
RingModeTypeAlias · 0.85
RunMethod · 0.45

Tested by

no test coverage detected