package player import "testing" // TestRemoveItemRejectsNonPositive: a non-positive quantity must never mutate // a stack; a negative value used to increase it. func TestRemoveItemRejectsNonPositive(t *testing.T) { p := New("alice") p.SetInvSlot(0, &InventorySlot{ItemID: "coin", Quantity: 5}) if p.RemoveItem("coin", -3) { t.Fatal("negative quantity accepted") } if slot := p.InvSlot(0); slot == nil || slot.Quantity != 5 { t.Fatalf("stack mutated by a negative removal: %+v", slot) } if p.RemoveItem("coin", 0) { t.Fatal("zero quantity accepted") } if slot := p.InvSlot(0); slot == nil || slot.Quantity != 5 { t.Fatalf("stack mutated by a zero removal: %+v", slot) } }