From 8dcef502bece0165634d20615fe556efcc7088b7 Mon Sep 17 00:00:00 2001 From: Jonathan Lamothe Date: Fri, 3 Jan 2020 22:01:09 -0500 Subject: [PATCH] implemented playerName --- src/Mtlstats/Helpers/Player.hs | 13 ++++++++++++- test/Helpers/PlayerSpec.hs | 21 +++++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Mtlstats/Helpers/Player.hs b/src/Mtlstats/Helpers/Player.hs index 6798109..8043957 100644 --- a/src/Mtlstats/Helpers/Player.hs +++ b/src/Mtlstats/Helpers/Player.hs @@ -19,7 +19,7 @@ along with this program. If not, see . -} -module Mtlstats.Helpers.Player (playerDetails) where +module Mtlstats.Helpers.Player (playerDetails, playerName) where import Lens.Micro ((^.)) @@ -43,3 +43,14 @@ playerDetails p = unlines $ top ++ [""] ++ table , ( "Assists", psAssists ) , ( "Penalty mins", psPMin ) ] + +-- | Presents a modified version of the player's name indicating +-- whether or not they're a rookie +playerName :: Player -> String +playerName p = let + + suffix = if p^.pRookie + then "*" + else "" + + in p^.pName ++ suffix diff --git a/test/Helpers/PlayerSpec.hs b/test/Helpers/PlayerSpec.hs index 6bd903a..0861efc 100644 --- a/test/Helpers/PlayerSpec.hs +++ b/test/Helpers/PlayerSpec.hs @@ -22,14 +22,15 @@ along with this program. If not, see . module Helpers.PlayerSpec (spec) where import Lens.Micro ((&), (.~)) -import Test.Hspec (Spec, describe, it, shouldBe) +import Test.Hspec (Spec, context, describe, it, shouldBe) import Mtlstats.Helpers.Player import Mtlstats.Types spec :: Spec -spec = describe "Player" +spec = describe "Player" $ do playerDetailsSpec + playerNameSpec playerDetailsSpec :: Spec playerDetailsSpec = describe "playerDetails" $ @@ -59,3 +60,19 @@ playerDetailsSpec = describe "playerDetails" $ ] in playerDetails p `shouldBe` expected + +playerNameSpec :: Spec +playerNameSpec = describe "playerName" $ mapM_ + (\(label, p, expected) -> context label $ + it ("should be " ++ expected) $ + playerName p `shouldBe` expected) + + -- label, player, expected + [ ( "rookie", rookie, "foo*" ) + , ( "non-rookie", nonRookie, "foo" ) + ] + + where + rookie = player True + nonRookie = player False + player r = newPlayer 1 "foo" "centre" & pRookie .~ r