Vibhu Pandey 7118829107
fix(test|lint): fix lint and test in go (#7346)
### Summary
 
- fix lint and test in go
2025-03-18 14:01:48 +05:30

65 lines
1.7 KiB
Go

package alertmanagerbatcher
import (
"context"
"io"
"log/slog"
"testing"
"github.com/stretchr/testify/assert"
"go.signoz.io/signoz/pkg/types/alertmanagertypes"
)
func TestBatcherWithOneAlertAndDefaultConfigs(t *testing.T) {
batcher := New(slog.New(slog.NewTextHandler(io.Discard, nil)), NewConfig())
_ = batcher.Start(context.Background())
batcher.Add(context.Background(), &alertmanagertypes.PostableAlert{Alert: alertmanagertypes.AlertModel{
Labels: map[string]string{"alertname": "test"},
}})
alerts := <-batcher.C
assert.Equal(t, 1, len(alerts))
batcher.Stop(context.Background())
}
func TestBatcherWithBatchSize(t *testing.T) {
batcher := New(slog.New(slog.NewTextHandler(io.Discard, nil)), Config{Size: 2, Capacity: 4})
_ = batcher.Start(context.Background())
var alerts alertmanagertypes.PostableAlerts
for i := 0; i < 4; i++ {
alerts = append(alerts, &alertmanagertypes.PostableAlert{Alert: alertmanagertypes.AlertModel{
Labels: map[string]string{"alertname": "test"},
}})
}
batcher.Add(context.Background(), alerts...)
for i := 0; i < 2; i++ {
alerts := <-batcher.C
assert.Equal(t, 2, len(alerts))
}
batcher.Stop(context.Background())
}
func TestBatcherWithCClosed(t *testing.T) {
batcher := New(slog.New(slog.NewTextHandler(io.Discard, nil)), Config{Size: 2, Capacity: 4})
_ = batcher.Start(context.Background())
var alerts alertmanagertypes.PostableAlerts
for i := 0; i < 4; i++ {
alerts = append(alerts, &alertmanagertypes.PostableAlert{Alert: alertmanagertypes.AlertModel{
Labels: map[string]string{"alertname": "test"},
}})
}
batcher.Add(context.Background(), alerts...)
batcher.Stop(context.Background())
for alerts := range batcher.C {
assert.Equal(t, 2, len(alerts))
}
}