mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
64 lines
1.4 KiB
Go
64 lines
1.4 KiB
Go
package channels
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/prometheus/alertmanager/types"
|
|
"github.com/prometheus/common/model"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/grafana/grafana/pkg/infra/log"
|
|
"github.com/grafana/grafana/pkg/services/ngalert/models"
|
|
)
|
|
|
|
func TestWithStoredImages(t *testing.T) {
|
|
ctx := context.Background()
|
|
alerts := []*types.Alert{{
|
|
Alert: model.Alert{
|
|
Annotations: model.LabelSet{
|
|
models.ImageTokenAnnotation: "test-image-1",
|
|
},
|
|
},
|
|
}, {
|
|
Alert: model.Alert{
|
|
Annotations: model.LabelSet{
|
|
models.ImageTokenAnnotation: "test-image-2",
|
|
},
|
|
},
|
|
}}
|
|
imageStore := &fakeImageStore{Images: []*models.Image{{
|
|
Token: "test-image-1",
|
|
URL: "https://www.example.com/test-image-1.jpg",
|
|
CreatedAt: time.Now().UTC(),
|
|
}, {
|
|
Token: "test-image-2",
|
|
URL: "https://www.example.com/test-image-2.jpg",
|
|
CreatedAt: time.Now().UTC(),
|
|
}}}
|
|
|
|
var (
|
|
err error
|
|
i int
|
|
)
|
|
|
|
// should iterate all images
|
|
err = withStoredImages(ctx, log.New(ctx), imageStore, func(index int, image models.Image) error {
|
|
i += 1
|
|
return nil
|
|
}, alerts...)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, 2, i)
|
|
|
|
// should iterate just the first image
|
|
i = 0
|
|
err = withStoredImages(ctx, log.New(ctx), imageStore, func(index int, image models.Image) error {
|
|
i += 1
|
|
return ErrImagesDone
|
|
}, alerts...)
|
|
require.NoError(t, err)
|
|
assert.Equal(t, 1, i)
|
|
}
|