46 lines
918 B
Go
46 lines
918 B
Go
package shareser
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
|
|
"91porn-server/common/stderr"
|
|
"91porn-server/models/e/sharemod"
|
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
)
|
|
|
|
func TestGeneratorQrCodeKeepsShareSuccessWhenRecommendScoreFails(t *testing.T) {
|
|
scoreCalls := 0
|
|
code, data := generatorQrCodeContextWithScore(
|
|
context.Background(),
|
|
123,
|
|
"https://example.test/video?id=1",
|
|
primitive.NewObjectID().Hex(),
|
|
"event-1",
|
|
func(
|
|
context.Context,
|
|
uint64,
|
|
primitive.ObjectID,
|
|
string,
|
|
time.Time,
|
|
) error {
|
|
scoreCalls++
|
|
return errors.New("recommend score unavailable")
|
|
},
|
|
)
|
|
|
|
if code != stderr.Success {
|
|
t.Fatalf("code=%v, want success", code)
|
|
}
|
|
response, ok := data.(sharemod.VShareResp)
|
|
if !ok || len(response.QrCode) == 0 {
|
|
t.Fatalf("data=%T %#v, want non-empty QR code", data, data)
|
|
}
|
|
if scoreCalls != 1 {
|
|
t.Fatalf("score calls=%d, want 1", scoreCalls)
|
|
}
|
|
}
|