Files
bd2/go/internal/player/wallet_test.go
T
2026-09-21 09:53:46 +08:00

32 lines
759 B
Go

package player
import (
"path/filepath"
"testing"
"bd2server/internal/gamedata"
)
func TestWalletGrantPersistsAndIsIdempotent(t *testing.T) {
path := filepath.Join(t.TempDir(), "wallet.json")
wallet, err := OpenWallet(path, Currency{Gold: 100})
if err != nil {
t.Fatal(err)
}
rewards := []gamedata.Reward{{Type: 4, Count: 1500}, {Type: 3, Count: 70}, {Type: 25, ID: 210, Count: 1}}
if _, err := wallet.GrantQuestOnce("quest:1", rewards); err != nil {
t.Fatal(err)
}
wallet, err = OpenWallet(path, Currency{})
if err != nil {
t.Fatal(err)
}
if _, err := wallet.GrantQuestOnce("quest:1", rewards); err != nil {
t.Fatal(err)
}
got := wallet.Snapshot()
if got.Gold != 1600 || got.FreeJewelry != 70 {
t.Fatalf("wallet=%+v", got)
}
}