38 lines
1.1 KiB
Go
38 lines
1.1 KiB
Go
package images_test
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
|
|
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/components/images"
|
|
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/internal/pkg/config"
|
|
"git.schreifuchs.ch/schreifuchs/schreifuchs.ch/test/testdata"
|
|
"github.com/valkey-io/valkey-go"
|
|
"github.com/valkey-io/valkey-go/mock"
|
|
"go.uber.org/mock/gomock"
|
|
)
|
|
|
|
func Setup(ctx context.Context, ctrl *gomock.Controller) (*images.Service, *mock.Client) {
|
|
valkey := mock.NewClient(ctrl)
|
|
return images.New(testdata.FS(), &config.ImageConfig{Concurency: 1, Quality: 80}, valkey), valkey
|
|
}
|
|
|
|
func BenchmarkService_GetImage(b *testing.B) {
|
|
srv, valkeyClient := Setup(b.Context(), gomock.NewController(b))
|
|
uid, err := images.UIDFromPath("cover.jpg")
|
|
if err != nil {
|
|
b.Error("could not get uid", err)
|
|
}
|
|
|
|
b.ReportAllocs()
|
|
for b.Loop() {
|
|
valkeyClient.EXPECT().Do(gomock.Any(), gomock.Any()).Return(mock.ErrorResult(errors.New("adf")))
|
|
valkeyClient.EXPECT().Do(gomock.Any(), gomock.Any()).Return(mock.Result(valkey.ValkeyMessage{}))
|
|
_, _, err = srv.GetImage(b.Context(), uid, images.Options{Width: 500, Quality: 80})
|
|
if err != nil {
|
|
b.Error(err)
|
|
}
|
|
}
|
|
}
|