package game import ( "errors" "testing" ) func TestCloak(t *testing.T) { s, _, p, _ := newMockState() a := s.addNewUnit(NewCard("base/archer"), Position{0, 0}, p) c := s.addNewEquipment(NewCard("equipments/cloak"), Position{1, 0}, p) die := NewCard("magic/die!") ea := NewEquipAction(a, c) ea.costFunc = genBaseActionCost(a, 1, 0) s.ResolveAction(ea) if !a.HasEffect("shroud") { t.Fatal("archer not shrouded") } pa := NewPlayAction(p, die) err := pa.Target().AddSelection(a) if !errors.Is(err, ErrTargetHasShroud) { t.Fatal("shrouded archer targeted") } } func TestFighter(t *testing.T) { s, _, p, _ := newMockState() f := s.addNewUnit(NewCard("base/fighter"), Position{0, 0}, p) f.onUpkeep() if f.AvailAttackActions != 2 { t.Fatal("fighter does not have two attack actions") } }