Sync telesrv 4c0e2d9 (feat: complete official star gift lifecycle and admin tooling). Public adjustments: skipped private docs/deploy-nginx/README source changes, kept iamxvbaba/td public dependency, replaced local/private sample IP and orange seed label.
41 lines
1.4 KiB
Go
41 lines
1.4 KiB
Go
package memory
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
|
|
"telesrv/internal/domain"
|
|
)
|
|
|
|
func TestSavedStarGiftIdentityDoesNotAcceptUpgradeMessageID(t *testing.T) {
|
|
ctx := context.Background()
|
|
owner := domain.Peer{Type: domain.PeerTypeUser, ID: 42}
|
|
store := NewStarGiftStore()
|
|
id, err := store.Create(ctx, domain.SavedStarGift{
|
|
Owner: owner, GiftID: 8001, RevisionID: 9001, MsgID: 115,
|
|
UniqueGiftID: 901, UpgradeMsgID: 116,
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("create saved gift: %v", err)
|
|
}
|
|
store.uniqueBySlug["official-8001-1"] = 901
|
|
|
|
canonical := domain.SavedStarGiftRef{Owner: owner, MsgID: 115}
|
|
if saved, found, err := store.GetByRef(ctx, canonical); err != nil || !found || saved.ID != id {
|
|
t.Fatalf("canonical identity: saved=%+v found=%v err=%v", saved, found, err)
|
|
}
|
|
wrong := domain.SavedStarGiftRef{Owner: owner, MsgID: 116}
|
|
if saved, found, err := store.GetByRef(ctx, wrong); err != nil || found {
|
|
t.Fatalf("upgrade message id resolved gift: saved=%+v found=%v err=%v", saved, found, err)
|
|
}
|
|
if _, err := store.ResolveSavedIDs(ctx, owner, []domain.SavedStarGiftRef{wrong}); !errors.Is(err, domain.ErrStarGiftNotFound) {
|
|
t.Fatalf("upgrade message id resolve err=%v, want ErrStarGiftNotFound", err)
|
|
}
|
|
if _, err := store.ResolveSavedIDs(ctx, owner, []domain.SavedStarGiftRef{
|
|
canonical,
|
|
{Owner: owner, Slug: "official-8001-1"},
|
|
}); !errors.Is(err, domain.ErrStarGiftCollectibleInvalid) {
|
|
t.Fatalf("duplicate official identities err=%v", err)
|
|
}
|
|
}
|